如何停止 hbr 背景、绘画、调整大小?C++

How can I stop hbrBackground, painting, on resize? C++

本文关键字:C++ 调整 绘画 何停止 hbr 背景      更新时间:2023-10-16

我已经删除了CS_HREDRAW,CS_VREDRAW。

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

您可以将默认背景画笔设置为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标志,以防止在子控件后面绘制。