/////////////////////////////////////////////////////////////////////////////
// 张敬飞
// 2009-5-4
//////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//#include "program.h"
#include "StaticEx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// 张敬飞
// 2009-5-4
//////////////////////////////////////////////////////////////////////////
CStaticEx::CStaticEx()
{
//初始化背景和字体颜色
m_BkColor=RGB(0,0,0); //黑色
m_TxtColor=RGB(255,255,255); //白色
}
CStaticEx::~CStaticEx()
{
}
BEGIN_MESSAGE_MAP(CStaticEx, CStatic)
//{{AFX_MSG_MAP(CStaticEx)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStaticEx message handlers
void CStaticEx::OnPaint()
{
CPaintDC dc(this); // device context for painting
CDC memdc;
CBrush m_Brush,*m_Oldbrush;
CBitmap bitmap;
CRect rect;
CString strWindowText;
int x,y;
CSize size;
//得到区域
GetClientRect(&rect);
//得到文本
this->GetWindowText(strWindowText);
//创建兼容的内存位图句柄
memdc.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
memdc.SelectObject( &bitmap );
//得到文字尺寸
size=memdc.GetTextExtent(strWindowText);
//创建画刷,画背景色
m_Brush.CreateSolidBrush(m_BkColor);
m_Oldbrush=memdc.SelectObject(&m_Brush);
memdc.FillRect(&rect,&m_Brush);
memdc.SelectObject(m_Oldbrush);
m_Brush.DeleteObject();
//文字
y=rect.top;
x=rect.right/2-size.cx/2 ;
memdc.SetBkColor(m_BkColor);
memdc.SetTextColor(m_TxtColor);
memdc.TextOut(x,y,strWindowText);
//画图
dc.BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &memdc, rect.left, rect.top, SRCCOPY);
}
- 1
- 2
前往页