更改 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的主要内容,如果未能解决你的问题,请参考以下文章