Winapi 设置Win32对话框按钮的背景色(非所有者绘制)

Winapi 设置Win32对话框按钮的背景色(非所有者绘制),winapi,button,dialog,background-color,Winapi,Button,Dialog,Background Color,是否可以在Win32中设置对话框按钮的背景色而不使用所有者绘制的按钮 以下内容绘制了除按钮(非所有者绘制)之外的每个对话框项的背景: SDK文档中的消息非常明确: 带BS_按钮的按钮, 按钮,或按钮式按钮 样式不使用返回的笔刷。 具有这些样式的按钮始终是可用的 使用默认系统颜色绘制。 绘图按钮需要几个按钮 不同的笔刷包括面、高光和 阴影,但WM_CTLCOLORBTN消息 只允许返回一个笔刷。 为提供自定义外观的步骤 按钮,使用所有者绘制的 按钮 现在大多数Windows程序都使用用户选择的视觉

是否可以在Win32中设置对话框按钮的背景色而不使用所有者绘制的按钮

以下内容绘制了除按钮(非所有者绘制)之外的每个对话框项的背景:


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

带BS_按钮的按钮, 按钮,或按钮式按钮 样式不使用返回的笔刷。 具有这些样式的按钮始终是可用的 使用默认系统颜色绘制。 绘图按钮需要几个按钮 不同的笔刷包括面、高光和 阴影,但WM_CTLCOLORBTN消息 只允许返回一个笔刷。 为提供自定义外观的步骤 按钮,使用所有者绘制的 按钮

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

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