双缓冲公共控件

Bil*_*eal 5 c++ winapi control-library

有没有办法双重缓冲共同控件?目前,当他们调整大小时,他们闪烁.很多.....

编辑:如果它有帮助,它是一组按钮控件和一些编辑控件,都位于选项卡控件的顶部.Tab控件重绘自身,然后按钮重绘自己.当按钮重绘时,它们会闪烁.

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

Her*_*nán 4

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

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

#define WINVER 0x501 
Run Code Online (Sandbox Code Playgroud)

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

更新

使用 WM_PRINTCLIENT 将客户区传输到 DC 上的位图并将所有客户区作为一个整体进行 blit 怎么样?

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