Onpaint()函数中绘图出现问题:当多次进入onpaint()发现次数达到一定程度就会出现窗口不能再重绘导致窗口内容损坏的现象

我在一个按钮中调用sendmessage(wm_paint,0,0)达到36以上时,当最小化窗口然后再恢复就会发现窗口出现错误信息,而且窗口界面内容混乱不完整。原来以为是使用sleep()函数导致的问题,后来先通过把onpaint()函数内容注释掉,排除掉了sleep()函数导致的问题。再后来部分注释onpain()函数内的代码如下:

brush1.CreateSolidBrush(RGB(255,255,255)); 
//pdc->SelectObject(brush1);
pdc->FillRect(CRect(point1,point2),&brush1);
//brush1.DeleteObject();

后来把注释(红色)的部分加上就没有问题了,说明创建刷子后一定要选择到pdc中,只是单纯的用fillrect是不行的。

所以在做有关绘图的代码编写时一定要注意相关的操作。

原文地址:https://www.cnblogs.com/kabe/p/4548643.html