我删除了CS_HREDRAW,CS_VREDRAW。
消息WM_PAINT和WM_ERASEBKGND什么都不做,但是一旦窗口重新调整大小,它就会用背景颜色重新绘制它。有没有办法阻止它绘制/重新绘制?
答案 0 :(得分:1)
您可以将默认背景画笔设置为NULL
WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
...
wcex.hbrBackground = NULL;
RegisterClassEx(&wcex);
或者TRUE
返回WM_ERASEBKGND
(除了什么也不做)
switch(msg)
{
case WM_ERASEBKGND:
return TRUE;
...
}
使用任一方法来防止背景绘制消息。
对于WM_PAINT
,要么不处理该消息,要么使用BeginPaint
和EndPaint
来电。如果没有背景画笔,那么您可能需要处理WM_PAINT
您可能还想在窗口中添加WS_CLIPCHILDREN
标记,以防止在子控件后面绘画。