C++窗口的WM_PAINT消息为什么会一直发送呢?

2025-03-12 23:59:27
推荐回答(3个)
回答1:

只要是窗口切换都会导致重绘事件。当你的断点触发的时候,VS就会切换出来,而你运行的程序的窗口则会被VS的窗口挡住,当你按F5继续运行时,你的窗口又切换回来,这就触发了重绘事件

回答2:

因为你的程序和vs不停的切换, 不停被遮盖,不停重绘。 这时候两台显示器就比较方便了,也可以平铺一下 不要让两个窗口重叠

回答3:

分析一下。
只要窗口有遮挡就会触发这个消息。
编译器和你的程序窗口之间的切换。
于是就被响应到了。
或者是你没有正确的响应,你获取dc的方式是不是这样?
hdc = GetDC(hwnd);
因为窗口被覆盖的区域无效所以Windows不断地发送这个消息,让你重画
如果是的话你有两个选择。
在消息WM_PAINT响应部分结尾添加。
ValidateRect(hwnd,NULL);
这样可以骗过windows系统。
另个我也不清楚。反正我知道有两个就对了。