编辑1:实际上,我只是想避免关闭一个Word文档并打开另一个文档时引起的闪烁。但现在看来,这种方法不可行。
问候,是否有可能防止整个屏幕(而不仅仅是桌面)更新?这个问题源自这个。我的Word插件中,我想要做的是,在关闭一个Word文档并打开另一个文档时锁定整个屏幕更新,并在完成后重新启用更新。
一个想法是:
- 获取整个屏幕的图像(如何?);
- 显示一个最顶部的窗口,以展示步骤1中捕获的屏幕图像,覆盖整个屏幕;
- 完成工作后关闭最顶部的窗口。
这是可能的吗?或者您有其他更好的想法吗?谢谢!
编辑1:实际上,我只是想避免关闭一个Word文档并打开另一个文档时引起的闪烁。但现在看来,这种方法不可行。
问候,是否有可能防止整个屏幕(而不仅仅是桌面)更新?这个问题源自这个。我的Word插件中,我想要做的是,在关闭一个Word文档并打开另一个文档时锁定整个屏幕更新,并在完成后重新启用更新。
一个想法是:
这是可能的吗?或者您有其他更好的想法吗?谢谢!
不要这样做。
没有任何应用程序、插件或其他代码可以比用户拥有的UI更特殊,即使只是短暂的干扰。
The Old New Thing (Raymond Chen) 在这方面有一些非常好的帖子,包括LockWindowUpdate,锁定小工具位置和其他对用户不友好的功能。
生活在一个多线程的世界里,意味着你应该期望你的用户会同时做多件事情。
为了“看起来漂亮”而锁定任何东西 - 即使只是短暂的时间 - 是完全不可行的。
你的请求只是走向可怕的系统模态对话框“您确定要对计算机进行这个坏事吗?”的第一步,其中有“是”和“否”按钮,其中“是”是默认按钮,在用户输入长篇故事时按下空格键。
--jeroen
为防止屏幕更新:
SendMessage(GetDesktopWindow, WM_SETREDRAW, 0, 0);
重新启用屏幕更新:
SendMessage(GetDesktopWindow, WM_SETREDRAW, 1, 0);