一个应该在本地运行时使用双缓冲,而当窗口在远程会话时,如果想要获得每个模式的最佳性能,则不要使用双缓冲。
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);
链接后的下一篇文章显示如何在显示在本地和远程之间切换时得到通知: http : //blogs.msdn.com/b/oldnewthing/archive/2006/01/04/509194.aspx