我正在尝试记录绘画消息以解决问题,我需要一种方法来了解 WM_PAINT 消息是否必须删除背景, 所以我在 WM_PAINT 处理中做了这个:
hdc = BeginPaint(hwnd,&ps);
//code to output the Invalid RECT is ommited.....
if(ps.fErase){
//output true
}else{
//output false
};
ps.rcPaint
具有正确的值,但 ps.fErase
始终为“false”,即使我调用 InvalidateRect(hwnd,0,true);
其中 hwnd
是我记录 WM_PAINT 消息的窗口
这是一些 output image
我想知道无效的王朝绘画请求是否像我对上次所做的那样包括删除背景 InvalidateRect(hwnd,0,1);
我做错了什么?
最佳答案
如果背景需要删除,系统会在WM_PAINT
之前发送WM_ERASEBKGND
。如果您不处理此消息,那么它将通过 DefWindowProc
自动清除背景。
您需要处理WM_ERASEBKGND
并返回0
以向系统指示背景尚未被删除。然后它会在 WM_PAINT
中给你另一次机会。
关于c - 如何知道 WM_PAINT 是否必须删除背景?窗口API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322672/