OnCtlColor 设置背景色和控件颜色不显示问题

码农009 2014-10-28 05:46:17

HBRUSH StateMonitoring::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (!pDC)
{
AfxMessageBox(L"指针为空");
return hbr;
}

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired


if(nCtlColor==CTLCOLOR_BTN) //更改按钮颜色

{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;

}

else if(nCtlColor==CTLCOLOR_SCROLLBAR) //滚动条

{

//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;

}

else if(nCtlColor==CTLCOLOR_EDIT) //更改编辑框

{
//pDC->SetBkMode(TRANSPARENT);

pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;
}
else if(nCtlColor==CTLCOLOR_LISTBOX ) //更改列表控件

{
//pDC->SetBkMode(TRANSPARENT);

pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));
return bColor;

}
else if(nCtlColor==CTLCOLOR_MSGBOX ) //更改消息框

{
//pDC->SetBkMode(TRANSPARENT);

pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;

}

else if(nCtlColor==CTLCOLOR_STATIC) //更改静态文本

{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;
}
else if(nCtlColor==CTLCOLOR_DLG) //更改对话框背景色
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(197,209,217));

return bColor;

}
return hbr;
}

这是代码 bColor在构造函数中进行了赋值
bColor=CreateSolidBrush(RGB(197,209,217));
想问下 为啥一直进入OnCtlColor函数,并且我在win7 32机子上能成功运行并改变颜色,但是移植到win7 64机子上就不能显示背景和控件颜色,64位机也会进入OnCtlColor函数中 求大牛指点
...全文
348 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-11-29
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
码农009 2014-10-29
  • 打赏
  • 举报
回复
引用 1 楼 lovesmiles 的回复:
将win7的桌面方案改成经典windows看看
就是经典window啊 ....
Yofoo 2014-10-29
  • 打赏
  • 举报
回复
只用 OnCtlColor 修改颜色是不太兼容的 还有其他东西要处理, 比如 WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_ERASEBKGND.......
码农009 2014-10-29
  • 打赏
  • 举报
回复
求大牛 指点 ,
勤奋的小游侠 2014-10-28
  • 打赏
  • 举报
回复
将win7的桌面方案改成经典windows看看

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧