更改 SysLink 控件的背景颜色 - MFC

Posted

技术标签:

【中文标题】更改 SysLink 控件的背景颜色 - MFC【英文标题】:Chaning the background color of SysLink Control - MFC 【发布时间】:2014-11-20 13:27:36 【问题描述】:

我在设置 SysLink 控件的背景颜色时遇到问题。

我有一个组框和几个 SysLink 控件。当我更改组框和 syslink 控件的背景颜色时,这就是它的样子...

最后会出现一条白色的小线。调整控件的宽度后还是不走。

这是我的代码:

HBRUSH PanelDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

        pDC->SetBkColor(RGB(0, 0, 255));//RGB(223, 233, 247)
        pDC->SetTextColor(RGB(0, 0, 0));
        return (HBRUSH)GetStockObject(NULL_BRUSH);

和 OnPaint...

void PanelDlg::OnPaint()

    CRect rect1;
    GetDlgItem(IDC_MENU_GROUP_BOX)->GetWindowRect(&rect1);
    ScreenToClient(&rect1);
    CPaintDC dc(this);
    dc.FillSolidRect(&rect1, RGB(0, 0, 255));// RGB(223, 233, 247)); //247
    CDialogEx::OnPaint();

【问题讨论】:

通过使用 CPaintDC 您正在验证对话框的无效区域,然后 CDialogEx::OnPaint 不会获得正确的无效区域。尝试改用 CClientDC。 【参考方案1】:

我认为您不需要OnPaint() 处理程序,请尝试在OnCtlColor() 中返回具有相同背景颜色的画笔,就像在my SO Answer 中一样回答类似的问题。

【讨论】:

以上是关于更改 SysLink 控件的背景颜色 - MFC的主要内容,如果未能解决你的问题,请参考以下文章

更改 SysLink 控件的颜色

在 MFC 控件中更改背景和标题的颜色

如何更改MFC按钮的背景色

MFC设置对话框背景色及控件颜色

添加 syslink 不显示 mfc 对话框

如何在 mfc 中更改 CImage 对象的背景颜色?