windows 如何设置按钮背景色?

qhhrdooz  于 2023-03-24  发布在  Windows
关注(0)|答案(2)|浏览(204)

如何更改使用CreateWindow创建的按钮控件的背景色?

kxeu7u2r

kxeu7u2r1#

Windows API不再提供许多选项来自定义标准控件的外观。

  • WM_CTLCOLORBTN可以由按钮的父窗口处理,以控制按钮外观的某些方面,但uxtheme按钮仅使用背景画笔绘制按钮后面的区域。面部外观由当前主题确定。
  • WM_DRAWITEM也可以由父窗口处理,通过在按钮上设置BS_OWNERDRAW样式。这允许父窗口完全取代普通按钮的绘制逻辑。
waxmsbnn

waxmsbnn2#

要管理对话框上控件的颜色,请在对话框类中向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;
}

相关问题