【问题标题】:Setting background color of Win32 dialog button (not owner-drawn)设置 Win32 对话框按钮的背景颜色(非自绘)
【发布时间】:2011-04-07 21:07:46
【问题描述】:

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

【问题讨论】:

    标签: winapi button dialog background-color


    【解决方案1】:

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

    带有 BS_PUSHBUTTON 的按钮, BS_DEFPUSHBUTTON 或 BS_PUSHLIKE 样式不使用返回的画笔。 具有这些样式的按钮总是 使用默认系统颜色绘制。 绘制按钮需要几个 不同的画笔——面部、高光和 阴影-但 WM_CTLCOLORBTN 消息 只允许退回一把刷子。 提供自定义外观 按钮,使用自绘 按钮。

    现在大多数 Windows 程序都使用用户选择的视觉风格。推荐,加required manifest

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2021-10-29
      相关资源
      最近更新 更多