新建一个对话框工程,在对话框中添加一个按钮,然后,从button类继承一个子类 CNewButton, 重载 PreSubclassWindow,修改按钮的属性 ModifyStyle( 0 , BS_OWNERDRAW ); ,告诉系统,用户手绘按钮; 然后再重载DrawItem,在这里边修改按钮的背景色,字体的颜色,修改lpDrawItemStruct参数的值,使用SetBkColor,设置按钮字体的颜色, SetTextColor设置字体的颜色, 使用FillRect可以填充按钮的背景色。设置完后,给对话框的按钮添加一个变量,基类就选择刚才创建的CNewButton
- void CNewButton::PreSubclassWindow()
- {
- ModifyStyle( 0 , BS_OWNERDRAW );
- CButton::PreSubclassWindow();
- }
- void CNewButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
- {
- ::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);
- }