更改SysLink Control的背景颜色 - MFC

时间:2014-11-20 13:27:37

标签: c++ visual-c++ mfc

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

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

enter image description here

最后会出现一条白色的小颜色。调整控件的宽度后,它甚至都不会出现。

这是我的代码:

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();
}

1 个答案:

答案 0 :(得分:1)

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

相关问题