新建一个对话框工程,在对话框中添加一个按钮,然后,从button类继承一个子类 CNewButton, 重载 PreSubclassWindow,修改按钮的属性 ModifyStyle( 0 , BS_OWNERDRAW );,告诉系统,用户手绘按钮; 然后再重载DrawItem,在这里边修改按钮的背景色,字体的颜色,修改lpDrawItemStruct参数的值,使用SetBkColor,设置按钮字体的颜色, SetTextColor设置字体的颜色, 使用FillRect可以填充按钮的背景色。设置完后,给对话框的按钮添加一个变量,基类就选择刚才创建的CNewButton
-
-
- voidCNewButton::PreSubclassWindow()
- {
- ModifyStyle(0,BS_OWNERDRAW);
- CButton::PreSubclassWindow();
- }
-
- voidCNewButton::DrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct)
- {
- ::SetTextColor(lpDrawItemStruct->hDC,RGB(20,200,20));
- CDC::FromHandle(lpDrawItemStruct->hDC)->FillRect(&lpDrawItemStruct->rcItem,&CBrush(RGB(200,0,0)));
- DrawText(lpDrawItemStruct->hDC,"222",3,&lpDrawItemStruct->rcItem,DT_CENTER|DT_SINGLELINE|DT_VCENTER);
-
- }
-