如何在调整大小时停止hbrBackground,绘画? C ++

时间:2016-02-21 00:08:01

标签: c++ windows

我删除了CS_HREDRAW,CS_VREDRAW。

消息WM_PAINT和WM_ERASEBKGND什么都不做,但是一旦窗口重新调整大小,它就会用背景颜色重新绘制它。有没有办法阻止它绘制/重新绘制?

1 个答案:

答案 0 :(得分:1)

您可以将默认背景画笔设置为NULL

WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
...
wcex.hbrBackground = NULL;
RegisterClassEx(&wcex);

或者TRUE返回WM_ERASEBKGND(除了什么也不做)

switch(msg)
{
case WM_ERASEBKGND:
    return TRUE;
...
}

使用任一方法来防止背景绘制消息。

对于WM_PAINT,要么不处理该消息,要么使用BeginPaintEndPaint来电。如果没有背景画笔,那么您可能需要处理WM_PAINT

您可能还想在窗口中添加WS_CLIPCHILDREN标记,以防止在子控件后面绘画。