这一切都归功于新版MFC类库。
所谓的新特性。
得用drawItem方法得绘即可,没有什么技术要点。
CStaticEx.h
class CStaticEx : public CStatic
{
DECLARE_DYNAMIC(CStaticEx)
public:
CStaticEx();
virtual ~CStaticEx();
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
void PreSubclassWindow(void);
protected:
DECLARE_MESSAGE_MAP()
};
#include "StaticEx.h"
// CStaticEx
IMPLEMENT_DYNAMIC(CStaticEx, CStatic)
CStaticEx::CStaticEx()
{
}
CStaticEx::~CStaticEx()
{
}
BEGIN_MESSAGE_MAP(CStaticEx, CStatic)
END_MESSAGE_MAP()
//重点代码
void CStaticEx::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )
{
CRect rect=lpDrawItemStruct->rcItem;
CString title;
this->GetWindowText(title);
CDC * pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
CSize size = pDC->GetTextExtent(title);
CPoint point=rect.CenterPoint();
point-=CPoint(size.cx/2,size.cy/2);
//point.Offset(size.cx/2,size.cy/2);
pDC->SetBkMode(TRANSPARENT);
pDC->TextOut(point.x,point.y,title);
pDC->ReleaseAttribDC();
}
//设置窗体样式为自绘
void CStaticEx::PreSubclassWindow( void )
{
this->ModifyStyle(0,SS_OWNERDRAW);
}