在远程会话上运行时,LVS_EX_DOUBLEBUFFER是否正确不是双缓冲区?

时间:2011-01-03 21:04:06

标签: c++ windows listview doublebuffered common-controls

One is supposed to use double buffering when running locally, but to not use double buffering when the window is on a remote session, if one wants to have the best performance of each mode.

ListView控件有一个扩展样式LVS_EX_DOUBLEBUFFER,它会自动双重缓冲ListView的内容。

是否需要注册以通知本地和远程会话之间的更改,并相应地更新此标志?或者ListView会自动执行此操作吗?

1 个答案:

答案 0 :(得分:5)

ListView不会自动调整自己是运行远程还是本地。它尊重您在创建控件时设置的扩展样式标志的值;如果设置LVS_EX_DOUBLEBUFFER,那么显示将被双重缓冲,如果不设置,则不会。我相信Raymond Chen会同意任何其他行为都是一个错误。

您可以随时使用LVM_SETEXTENDEDLISTVIEWSTYLE更改国旗的状态:

SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_DOUBLEBUFFER, isRemote ? 0 : LVS_EX_DOUBLEBUFFER);

下一篇文章在您的关联文章显示如何在本地和远程之间显示更改时收到通知:http://blogs.msdn.com/b/oldnewthing/archive/2006/01/04/509194.aspx