gpt4 book ai didi

c - 闪烁问题但不想使用 CLIPCHILDREN 风格

转载 作者:行者123 更新时间:2023-11-30 17:59:01 25 4
gpt4 key购买 nike

我有一个工具栏,上面有一些显示文本的静态子控件(例如:“查找”...)。该工具栏上有 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.

最佳答案

不要使用空画笔,只需子类化静态控件并自己绘制背景(使用工具栏背景)。

关于c - 闪烁问题但不想使用 CLIPCHILDREN 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com