Bil*_*eal 4 c++ windows listview doublebuffered common-controls
一个应该在本地运行时使用双缓冲,但是当窗口在远程会话时不使用双缓冲,如果想要获得每个模式的最佳性能.
ListView控件具有扩展样式,LVS_EX_DOUBLEBUFFER
它自动双重缓冲ListView的内容.
是否需要注册以通知本地和远程会话之间的更改,并相应地更新此标志?或者ListView会自动执行此操作吗?
ListView不会自动调整自己是运行远程还是本地.它尊重您在创建控件时设置的扩展样式标志的值; 如果你设置LVS_EX_DOUBLEBUFFER
然后显示将是双缓冲,如果你没有,它不会.我相信Raymond Chen会同意任何其他行为都是一个错误.
您可以随时使用以下命令更改标志的状态LVM_SETEXTENDEDLISTVIEWSTYLE
:
SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_DOUBLEBUFFER, isRemote ? 0 : LVS_EX_DOUBLEBUFFER);
Run Code Online (Sandbox Code Playgroud)
在链接后的文章显示如何在本地和远程之间显示更改时获得通知:http://blogs.msdn.com/b/oldnewthing/archive/2006/01/04/509194.aspx