Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在远程会话上运行LVS_EX_DOUBLEBUFFER时是否正确无误?_C++_Windows_Listview_Doublebuffered_Common Controls - Fatal编程技术网

C++ 在远程会话上运行LVS_EX_DOUBLEBUFFER时是否正确无误?

C++ 在远程会话上运行LVS_EX_DOUBLEBUFFER时是否正确无误?,c++,windows,listview,doublebuffered,common-controls,C++,Windows,Listview,Doublebuffered,Common Controls,ListView控件有一个扩展样式,LVS_EX_DOUBLEBUFFER,它自动对ListView的内容进行双缓冲 是否需要注册以获得本地和远程会话之间的更改通知,并相应地更新此标志?或者ListView会自动执行此操作吗?ListView不会自动调整自己以适应您是在远程运行还是在本地运行。它尊重创建控件时设置的扩展样式标志的值;如果设置了LVS_EX_DOUBLEBUFFER,则显示将为双缓冲,如果不设置,则不会。我相信雷蒙德·陈会同意任何其他行为都是错误的 您可以随时使用以下命令更改标志的

ListView控件有一个扩展样式,
LVS_EX_DOUBLEBUFFER
,它自动对ListView的内容进行双缓冲


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

ListView不会自动调整自己以适应您是在远程运行还是在本地运行。它尊重创建控件时设置的扩展样式标志的值;如果设置了
LVS_EX_DOUBLEBUFFER
,则显示将为双缓冲,如果不设置,则不会。我相信雷蒙德·陈会同意任何其他行为都是错误的

您可以随时使用以下命令更改标志的状态:


t链接后的下一篇文章介绍了当显示在本地和远程之间发生变化时如何获得通知:

FWIW,标志不仅仅改变控件的绘制方式;它也可以改变行为。一些较新的listview模式在没有该标志的情况下无法正常工作(但在可怕的通用控件代码中还有更多的bug,微软似乎只为自己的狭隘用途编写/测试这些代码)。因此,除非您在远程桌面上看到性能问题,否则我将避免在不同情况下更改标志,以减少意外发生的机会。不过,只有我的2美分@汉斯·帕桑:我只是想了解一篇关于一般绘画的博文是如何应用于listview控件的,我对它没有控制权。如果不知道为什么/如何适用,我会变得迟钝。我记录了你的答案。你是在问当应用程序在远程会话中运行时,是否从ListView中删除了LVS_EX_DOUBLEBUFFER样式?如果是这样的话,你应该能够跟踪这类事情。@Chris:不,我知道这个样式没有被删除,因为除了使用那个标志的双缓冲外,其他事情都被打开了。但是,可以通过控件在远程会话上隐式使用双缓冲来完成绘制。
SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_DOUBLEBUFFER, isRemote ? 0 : LVS_EX_DOUBLEBUFFER);