OnCtlColor函数改变某个控件背景色时,其他的控件背景色恢复默认,怎么使其他控件背景色不变。

我先在有两个静态文本控件1和2,我鼠标左键按下1变黑,抬起1变绿,鼠标右键按下2变黑,抬起2变绿。但是1颜色变化时,2的背景颜色恢复默认白色了,怎么使一个变化颜色时不影响... 我先在有两个静态文本控件1和2,我鼠标左键按下1变黑,抬起1变绿,鼠标右键按下2变黑,抬起2变绿。但是1颜色变化时,2的背景颜色恢复默认白色了,怎么使一个变化颜色时不影响另一个。
我的代码是 写在OnCtlColor中的ID和颜色分别是两个变量,响应鼠标消息时给两个变量赋不同的值。
HBRUSH CZhangzhanfei1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if(pWnd->GetDlgCtrlID()==str)
{
pDC->SetBkColor(clr);
}
return hbr;
}
展开
 我来答
任明星Ming
推荐于2016-11-17 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1145万
展开全部

用你的第二个参数 pWnd来御悔判断,当前画的控件是哪个。

附件有个例子,你好巧看下你镇袜正就明白了。

更多追问追答
追问
没明白啊。。
if(pWnd->GetDlgCtrlID()==str)
这句不就是判断控件id吗
我操作1的背景色变化时,2现在是绿色的,会变为原来默认的白色。
追答
GetDlgCtrlID()是返回数值类型,你怎么能和CString做比较呢?我给你的附件是根据窗口句柄做比较的,那样更安全。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式