www.pudn.com > GOS.rar > GStatic.cpp


// 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; 
}