MFC设置按钮颜色(Visual C++ 6.0),挺复杂,废了好大的劲才找到了答案:
https://www.codeproject.com/Articles/16020/Color-Button
分三步进行:
1. 添加事件
右击窗体 - 事件,选中WM_DRAWITEM,双击,进入OnDrawItem方法
2. 在OnDrawItem方法中自定义代码
void CCheDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
if(nIDCtl == IDC_BUTTON1){
CDC dc;
RECT rect;
dc.Attach(lpDrawItemStruct ->hDC);
rect = lpDrawItemStruct->rcItem;
dc.Draw3dRect(&rect,RGB(255,255,255),RGB(0,0,0));
dc.FillSolidRect(&rect,RGB(0,121,217));
UINT state=lpDrawItemStruct->itemState;
if((state & ODS_SELECTED)) //按下的效果
{
dc.DrawEdge(&rect,EDGE_SUNKEN,BF_RECT);
}
dc.SetBkColor(RGB(0,121,217));
dc.SetTextColor(RGB(255,255,255));
TCHAR buffer[MAX_PATH]; //To store the Caption of the button.
ZeroMemory(buffer,MAX_PATH ); //Intializing the buffer to zero
::GetWindowText(lpDrawItemStruct->hwndItem,buffer,MAX_PATH);
dc.DrawText(buffer,&rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
dc.Detach();
}
CDialog::OnDrawItem(nIDCtl, lpDrawItemStruct);
}
3. 对于需要设置颜色的按钮,在属性中勾选“所有者绘制”
效果: