gpt4 book ai didi

c++ - 使用 WM_DRAWITEM 闪烁

转载 作者:行者123 更新时间:2023-11-30 02:57:30 27 4
gpt4 key购买 nike

看来我无法通过自绘控件解决这个问题。我已经对状态控件进行了 super 分类。我正在尝试自定义但仍保留相同的功能。基本上,我想更改背景和文本。我正在使用 Direct2d(或 ID2D1DCRenderTarget 接口(interface))进行绘图。我已经成功地使用 WM_NCPAINT 更改了背景;不过,您可以根据需要使用 WM_ERASEBKGRND。但是,这两种方法在我的实验中都作为对照,仍然出现闪烁。此外,当 SB_SETTEXT 的 WPARAM NOT SET 为 SBT_OWNERDRAW 时,不会发生闪烁。因此,我得出结论,WM_DRAWITEM 是罪魁祸首。无论如何,我可以用所有者绘制的状态栏解决这个闪烁的问题吗?

最佳答案

如果为您控制打开双缓冲,则可以避免闪烁。

设置 WS_EX_COMPOSITED 扩展样式: http://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx

例如处理 WM_CREATE 时,调用(WTL 或 MFC):

ModifyStyleEx(0, WS_EX_COMPOSITED);

关于c++ - 使用 WM_DRAWITEM 闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570196/

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