如何更改使用CreateWindow创建的按钮控件的背景颜色?
答案 0 :(得分:1)
Windows API不再提供许多选项来自定义标准控件的外观。
WM_CTLCOLORBTN可以通过按钮的父窗口来控制按钮外观的某些方面,但是uxtheme按钮仅使用背景画笔来绘制按钮后面的区域。面部的外观由当前主题决定。
BS_OWNERDRAW
样式,父窗口也可以处理WM_DRAWITEM。这允许父窗口完全替换绘制逻辑的普通按钮。
答案 1 :(得分:0)
要管理对话框中控件的颜色,请在对话框类中为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;
}