设置Win32对话框按钮的背景颜色(不是所有者绘制的)

时间:2010-09-03 13:59:38

标签: winapi button dialog background-color

是否可以在不使用所有者绘制按钮的情况下在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

1 个答案:

答案 0 :(得分:2)

消息的SDK文档中非常明确:

  

带有BS_PUSHBUTTON的按钮,   BS_DEFPUSHBUTTON或BS_PUSHLIKE   样式不使用返回的画笔。   总是有这些样式的按钮   使用默认系统颜色绘制。   绘图按钮需要几个   不同的画笔 - 脸,突出,和   shadow-but WM_CTLCOLORBTN消息   只允许返回一个画笔。   为...提供自定义外观   按钮,使用所有者绘制   按钮。

现在大多数Windows程序都使用用户选择的视觉样式。建议,添加required manifest