www.pudn.com > WinGOS.rar > Static.cpp


#include "gos.h" 
#include "static.h" 
 
LRESULT CStatic::MsgProc(UINT message, WPARAM wParam, LPARAM lParam) 
{ 
	switch(message) 
	{ 
	case WM_PAINT: 
		OnPaint(PDC(wParam)); 
		break; 
	default: 
		wParam=CWnd::MsgProc(message,wParam,lParam); 
	} 
	return wParam; 
} 
 
BOOL CStatic::Create(LPCTSTR pszText,DWORD nStyle,LPCRECT pRect,CPWnd* pParent) 
{ 
	return CWnd::Create(pszText,nStyle|WS_NOFOCUS,pRect,pParent); 
} 
 
BOOL CStatic::Create(CBitmap* pBitmap,DWORD nStyle,LPCRECT pRect,CPWnd* pParent) 
{ 
	nStyle |= WS_NOFOCUS|SS_ICON; 
	CWnd::Create(nStyle,pRect,pParent); 
	SetData(pBitmap); 
	return TRUE; 
} 
 
void CStatic::OnPaint(CDC* pDC) 
{ 
	DWORD nStyle=GetStyle(); 
	if(nStyle & SS_BITMAP) 
	{ 
		CBitmap* pBitmap=GetBitmap(); 
		if(!pBitmap || !pBitmap->GetBitmap().bmBits)return; 
		pDC->BitBlt(GetClientRect(),pBitmap,NULL,nStyle&SS_STYLEMASK); 
	} 
	else 
	{ 
		CFont* pFont=pDC->SelectObject(GetFont()); 
		COLORREF clr0=pDC->SetBkColor(CLR_NONE); 
		COLORREF clr=GetCtlColor(COLOR_WINDOWTEXT); 
		clr=pDC->SetTextColor(clr); 
 
		nStyle &= SS_DTMASK; 
		pDC->DrawText(this,GetClientRect(),nStyle); 
 
		pDC->SetTextColor(clr); 
		pDC->SetBkColor(clr0); 
		pDC->SelectObject(pFont); 
	} 
}