gpt4 book ai didi

c++ - ShowWindow() 立即隐藏 SW_HIDE 窗口,没有效果

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:02 35 4
gpt4 key购买 nike

在我的 C++ 应用程序中,我有以下代码:

ShowWindow(hDlg, SW_HIDE);
MakeScreenshot();
ShowWindow(hDlg, SW_SHOW);

这应该捕获没有当前应用程序窗口的屏幕截图。但是有一个问题。 SW_HIDE 需要一些时间,因为我的 Windows 8.1 配置为使用动画效果。因此窗口的隐藏需要大约 400 毫秒,如果在此间隔期间捕获屏幕截图(确实如此),它还将包含应用程序本身的窗口,这是我不喜欢的。

有没有什么办法可以立即隐藏当前窗口,这样它就不会被包含在创建屏幕截图函数中,该函数紧随其后被调用?如果没有,除了应用程序本身之外,还有其他首选方法如何截取 Windows 桌面的屏幕截图吗?在 MakeScreenshot 之前添加延迟并不是什么好的解决方案。谢谢。

最佳答案

您可以使用 MoveWindow(或 SetWindowsPos)将不需要的窗口移到虚拟桌面的可见区域之外,然后再将其移回。

您可能需要枚举监视器以找到所有监视器都无法到达的坐标,这需要一些工作。据推测,您的屏幕截图代码正在计算快照的坐标,因此您可以重复使用该计算来找到一个安全的位置来停放 window 。

关于c++ - ShowWindow() 立即隐藏 SW_HIDE 窗口,没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35686742/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com