gpt4 book ai didi

c++ - Windows 10 中非事件桌面上的 PrintWindow

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:27 29 4
gpt4 key购买 nike

因此,我在尝试使用 PrintWindow API 为位于非事件桌面上的窗口拍照时遇到了一个问题,它开始让我感到不安。

问题是对于一个特定的窗口,即使 PrintWindow 成功并且我得到了我想要的窗口的图像,该图像始终是上次桌面处于事件状态时的过时拷贝。起初我以为窗口没有接收到任何输入,但经过一些检查后我注意到它仍然接收并处理输入,但在其桌面再次被激活之前不会呈现任何变化。我在 Windows 7 和 10 中进行了测试,这只发生在 Windows 10 中。

经过更多的检查,我发现主窗口实际上如预期的那样更新了它自己,并且它的子窗口覆盖了主窗口的所有客户区,谁是罪魁祸首。这 2 个窗口是使用以下样式创建的:

类样式: 0x00000003 = CS_VREDRAW | CS_HREDRAW

父扩展样式:0x00000000

父级标准样式:0x96000000 = WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS

子扩展样式:0x00000020 = WS_EX_TRANSPARENT

子标准样式:0x56300000 = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_HSCROLL | WS_VSCROLL

我已经尝试了无数种尝试来解决这个问题,而且我在网上进行了大量搜索,但都无济于事。我非常沮丧,如果至少没有人能对此提出解释,我准备放弃。

最佳答案

Windows 不会渲染不可见的窗口。您将获得当前图像,这与将鼠标悬停在任务栏图标上时获得小预览窗口时获得的图像相同。
如果程序本身没有显式调用渲染函数,窗口将不会更新。如果窗口更新,则无法获取窗口当前外观的屏幕截图。

关于c++ - Windows 10 中非事件桌面上的 PrintWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432965/

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