是否可以在不使用所有者绘制按钮的情况下在Win32中设置对话框按钮的背景颜色?
以下描绘了除按钮(非所有者绘制)之外的每个对话框项目的背景:
case WM_CTLCOLOREDIT:
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORBTN:
HDC hdcStatic = (HDC)wParam;
SetBkColor(hdcStatic, bgEditColor);
return (INT_PTR)bgBrushCurrent; // a red brush created earlier
答案 0 :(得分:2)
消息的SDK文档中非常明确:
带有BS_PUSHBUTTON的按钮, BS_DEFPUSHBUTTON或BS_PUSHLIKE 样式不使用返回的画笔。 总是有这些样式的按钮 使用默认系统颜色绘制。 绘图按钮需要几个 不同的画笔 - 脸,突出,和 shadow-but WM_CTLCOLORBTN消息 只允许返回一个画笔。 为...提供自定义外观 按钮,使用所有者绘制 按钮。
现在大多数Windows程序都使用用户选择的视觉样式。建议,添加required manifest。