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函数中 求大牛指点
5 个解决方案
#1
将win7的桌面方案改成经典windows看看
#2
就是经典window啊 ....
#3
求大牛 指点 ,
#4
只用 OnCtlColor 修改颜色是不太兼容的
还有其他东西要处理, 比如 WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_ERASEBKGND.......
还有其他东西要处理, 比如 WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_ERASEBKGND.......
#5
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#1
将win7的桌面方案改成经典windows看看
#2
就是经典window啊 ....
#3
求大牛 指点 ,
#4
只用 OnCtlColor 修改颜色是不太兼容的
还有其他东西要处理, 比如 WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_ERASEBKGND.......
还有其他东西要处理, 比如 WM_CTLCOLORSTATIC, WM_CTLCOLORBTN, WM_ERASEBKGND.......
#5
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法