OnPaint中的问题

来源:互联网 发布:windows 10 64位 gho 编辑:程序博客网 时间:2024/06/05 22:44

今天帮一位同学解决一个问题,程序在OnPaint中使用如下代码:

然后一直进不了OnTimer

最后百度了下,发现是如下问题:

BeginPaint() 和EndPaint() 可以删除消息队列中的WM_PAINT消息,并使无效区域有效。
GetDC()和ReleaseDC()并不删除也不能使无效区域有效,因此当程序跳出 WM_PAINT 时 ,无效区域仍然存在。系统就回不断发送WM_PAINT消息,于是程序不断处理WM_PAINT消息。

 

 把
CDC * pDC=this->GetDC();
改成
PAINTSTRUCT ps;
CDC* pDC = BeginPaint(&ps);

ReleaseDC(pDC);
改成
EndPaint(&ps);
问题解决.

发现帮助人也是帮助自己,自己会的,可以加深理解,不会的,可以共同学习

原创粉丝点击