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