www.gusucode.com > VC++位图拉伸与背景叠加应用示例-源码程序 > VC++位图拉伸与背景叠加应用示例-源码程序/code/MyStatic.cpp
// MyStatic.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "MyStatic.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMyStatic CMyStatic::CMyStatic() { m_foreColor=RGB(0,0,0); m_backColor=RGB(255,255,255); m_bTrans=TRUE; m_pFont=NULL; } CMyStatic::~CMyStatic() { if(m_pFont!=NULL) delete m_pFont; } BEGIN_MESSAGE_MAP(CMyStatic, CStatic) //{{AFX_MSG_MAP(CMyStatic) ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyStatic message handlers void CMyStatic::OnPaint() { CPaintDC dc(this); // device context for painting CRect rect; GetClientRect(&rect); CString str; GetWindowText(str); if(m_bTrans) dc.SetBkMode(TRANSPARENT); else dc.SetBkColor(m_backColor); dc.SetTextColor(m_foreColor); CFont * pOldFont=NULL; if(m_pFont!=NULL) pOldFont=dc.SelectObject(m_pFont); dc.DrawText(str,&rect,DT_LEFT | DT_VCENTER); if(m_pFont!=NULL) dc.SelectObject(pOldFont); } void CMyStatic::SetForeColor(COLORREF foreColor) { m_foreColor=foreColor; } COLORREF CMyStatic::GetForeColor() { return m_foreColor; } void CMyStatic::SetBackColor(COLORREF backColor) { m_backColor=backColor; } COLORREF CMyStatic::GetBackColor() { return m_backColor; } void CMyStatic::SetTransMode(BOOL bTrans) { m_bTrans=bTrans; } BOOL CMyStatic::IsTrans() { return m_bTrans; } void CMyStatic::SetStyle(COLORREF foreColor,COLORREF backColor,BOOL bTrans) { SetForeColor(foreColor); SetBackColor(backColor); SetTransMode(bTrans); } void CMyStatic::SetFont(int nWeight,BOOL bItalic,BOOL bUnderlined,TCHAR * pFontName) { if(m_pFont!=NULL) delete m_pFont; m_pFont = new CFont; m_pFont->CreateFont(0,0,0,0,nWeight,bItalic,bUnderlined,0,ANSI_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS,pFontName); }