gpt4 book ai didi

c++ - 双缓冲常用控件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:14 28 4
gpt4 key购买 nike

有没有办法对 common controls 进行双重缓冲? ?目前,当他们调整大小时,他们会闪烁。很多......

编辑:如果有帮助的话,它是一堆按钮控件和一些编辑控件,全部位于选项卡控件之上。 Tab 控件重绘自身,然后按钮重绘自身。当按钮重绘时,它们会闪烁。

EDIT2:这是我遇到的问题的一个例子: http://billy-oneal.com/Lobfuscator.exe

最佳答案

查看使用 WS_EX_COMPOSITEDWS_EX_TRANSPARENT 样式。它们提供双缓冲,尽管当底层位图完成绘制时将调用 WM_PAINT,因为它从下到上绘制子控件,因此您可以在窗口过程中绘制。我过去用过它并且工作得很好。

将您的顶级窗口(容器)设置为扩展样式 WS_EX_COMPOSITED,并将您的子窗口设置为 WS_EX_TRANSPARENT。另外,记得定义:

#define WINVER 0x501 

参见 CreateWindowEx有关复合样式的信息。这也使得在子窗口上实现逐像素透明成为可能。

更新

如何使用 WM_PRINTCLIENT 将客户区传输到 DC 上的位图并将所有客户区作为一个整体 blit?

http://blogs.msdn.com/larryosterman/archive/2008/08/27/larry-s-new-favorite-windows-message-wm-printclient.aspx

关于c++ - 双缓冲常用控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842377/

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