我有一个工具栏,上面有一些显示文本的静态子控件(例如:“查找”...)。此工具栏上有 2 个编辑控件。当我调整主窗口的大小时,工具栏的某些部分出现闪烁。所以我尝试使用WS_CLIPCHILDREN
工具栏,它解决了flikcer问题。
但我不想使用WS_CLIPCHILDREN
,原因如下:
我的工具栏有漂亮的背景(使用 REBARCLASSNAME)。所以我不想出现静态控件的(不好看的)背景。因此,在工具栏的 wndproc 中,我有以下代码:
if (WM_CTLCOLORSTATIC == message) {
HWND hStatic = (HWND)lParam;
if (......)
{
SetBkMode((HDC)wParam, TRANSPARENT);
SelectBrush((HDC)wParam, GetStockBrush(NULL_BRUSH));
return 0;
}
}
因此静态显示文本内容与工具栏具有相同的背景。如果我使用WS_CLIPCHILDREN
,此效果将不再起作用。
我还尝试使用背景位图并将静态控件设置为SS_BITMAP
,但该功能SetText
不再起作用。
所以这是一个问题:
Is there anyway to specify a control that would not be affected by the painting of the parent.
In my case, the specific control is edit control. But for the static control, I want the parent
to take the control.
Or how to fix the flicker issue in another way? I tried to double buffer the toolrbar, but it
doesn't work.