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;
} 展开
我的代码是 写在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;
} 展开
1个回答
展开全部
用你的第二个参数 pWnd来御悔判断,当前画的控件是哪个。
附件有个例子,你好巧看下你镇袜正就明白了。
更多追问追答
追问
没明白啊。。
if(pWnd->GetDlgCtrlID()==str)
这句不就是判断控件id吗
我操作1的背景色变化时,2现在是绿色的,会变为原来默认的白色。
追答
GetDlgCtrlID()是返回数值类型,你怎么能和CString做比较呢?我给你的附件是根据窗口句柄做比较的,那样更安全。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询