gstatic.cpp

来自「一个简单而又高效的嵌入式操作系统.包括GUI及文件系统.仿Windows设计,类」· C++ 代码 · 共 85 行

CPP
85
字号
// GStatic.cpp: implementation of the GStatic class.
//
//////////////////////////////////////////////////////////////////////

#include "..\stdafx.h"
#include "GStatic.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

GStatic::GStatic()
{
	m_nStyle=0;
	m_nState=0;
}

GStatic::~GStatic()
{

}

//消息处理函数
void GStatic::WndProc(int nMessage, int wParam, int lParam)
{
	switch(nMessage)
	{
	case WM_PAINT:
		if(wParam & ODA_EDGE)OnNcPaint();
		if(wParam & ~ODA_EDGE)OnPaint();
		break;
	case WM_MOVE:
		OnMove();
		break;
	case WM_CREATE:
		OnCreate();
		break;
	default:
		lParam=0;
		break;
	}
}

void GStatic::OnPaint()
{
	if(m_nBackColor!=-1)FillRect(m_Rect,m_nBackColor);

	switch(m_nStyle & 0x0f)
	{
	case SS_LEFT:
		DrawText(m_strText,m_Rect,DT_LEFT|DT_VCENTER);
		break;
	case SS_CENTER:
		DrawText(m_strText,m_Rect,DT_CENTER|DT_VCENTER);
		break;
	case SS_RIGHT:
		DrawText(m_strText,m_Rect,DT_RIGHT|DT_VCENTER);
		break;
	case SS_ICON:
	case SS_BITMAP:
		if(m_nState)
		{
			if(m_nStyle & SS_REALSIZEIMAGE)
			{
				RECT r=m_Rect;
				r.left=(r.left+r.right-GetBitmap()->bmWidth+1)/2;
				r.right=r.left+GetBitmap()->bmWidth-1;
				r.top=(r.top+r.bottom-GetBitmap()->bmHeight+1)/2;
				r.bottom=r.top+GetBitmap()->bmHeight-1;
				DrawBitmap(GetBitmap(),r);
			}
			else
			{
				DrawBitmap(GetBitmap(),m_Rect);
			}
		}
		break;
	}
}

void GStatic::OnCreate()
{
	m_nStyle |= WS_NOFOCUS;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?