MyException - 我的异常网
当前位置:我的异常网» VC/MFC » SendMessage发送WM_CTLCOLOR讯息崩溃

SendMessage发送WM_CTLCOLOR讯息崩溃

www.MyException.Cn  网友分享于:2013-03-22  浏览:67次
SendMessage发送WM_CTLCOLOR消息崩溃
MFC基于对话框程序,在对话框上有一个CStatic,我的目的是动态改变对话框上的CStatic的颜色。所以向对话框发送WM_CTLCOLOR消息,然后在OnCtlColor处理中改变颜色,程序堆栈显示是lparam参数不正确,但是我换了很多种lparam,还是不行,总是崩溃··都无语了

CDC* pDC = this->GetDC();
HDC hDC = pDC->GetSafeHdc();
::SendMessage(m_hWnd, WM_CTLCOLOR, (WPARAM)(hDC), (LPARAM)(m_hWnd));

------解决方案--------------------
this->Invalidate();
不就搞定了么?
不要搞什么小技巧
------解决方案--------------------
当 static 需要重绘时(Invalidate) ,它会 向父窗口 (对话框)发WM_CTLCOLOR
你自己 发 WM_CTLCOLOR 给 对话框,与 ststic 发 不是 一回事,如果 是 static 发 它 会 用 返回的 颜色来 填充客户区, 你自己 乱发 一个, static 也 不知道, 这个 返回的颜色 干什么用 ?
 

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有