1、首先为工程CButton类的派生类CMyButton,在CMyButton的头文件中添加一个用于保存图标的成员变量和一个设置函数:用来为按钮加载我们导入的图标。
public:
HICON m_hIcon;
void SetIcon(UINT nIcon)
{
m_hIcon = AfxGetApp()->LoadIcon(nIcon);
}
//......
2、在CMyButton.cpp中重写虚函数:virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
CDC *dc;
//将句柄转换为CDC类的对象,以下两种方法都可以
dc = CDC::FromHandle(lpDIS->hDC);
//dc.Attach(lpDIS->hDC);
//获取按钮的矩形区域
CRect RtBtn = lpDIS->rcItem;
dc->FillSolidRect(RtBtn,RGB(100,50,100));
//如果按钮的