如何更改使用CreateWindow创建的按钮控件的背景色?
CreateWindow
kxeu7u2r1#
Windows API不再提供许多选项来自定义标准控件的外观。
BS_OWNERDRAW
waxmsbnn2#
要管理对话框上控件的颜色,请在对话框类中向WM_CTLCOLOR消息添加处理程序。然后,您需要添加几行这样的内容:
HBRUSH CYourDialogClass::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID() == IDC_OF_YOUR_BUTTON) { pDC->SetBkColor (RGB(0, 0, 255)); // BLUE color for background pDC->SetTextColor (RGB(255, 0, 0)); // RED color for text } return hbr; }
2条答案
按热度按时间kxeu7u2r1#
Windows API不再提供许多选项来自定义标准控件的外观。
BS_OWNERDRAW
样式。这允许父窗口完全取代普通按钮的绘制逻辑。waxmsbnn2#
要管理对话框上控件的颜色,请在对话框类中向WM_CTLCOLOR消息添加处理程序。
然后,您需要添加几行这样的内容: