4

一个应该在本地运行时使用双缓冲,但当窗口在远程会话上时不使用双缓冲,如果想要获得每种模式的最佳性能。

ListView 控件具有扩展样式 ,LVS_EX_DOUBLEBUFFER它会自动对 ListView 的内容进行双重缓冲。

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

4

1 回答 1

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

于 2011-01-06T22:02:35.770 回答