我正在成功地将另一个窗口的内容(在我的测试用例中是notepad)投影到我自己的窗口中。它工作得很好。
我做不到的是冻结它,这是使用DwmSetWindowAttribute (here)和参数DWMWA_FREEZE_REPRESENTATION (here)的API提供的,根据互联网,这个参数等于15。
dwmSetWindowAttribute(MyWindow,15,@Value,1)
我几乎尝试了所有的变种。发送1个字节,发送4个字节,值1,0,"maxdword“等等。返回值总是-2147024809,除非我弄错了,否则这意味着”无效参数“。
由于BitBlt的速度较慢,因此不能通过抓取我投影的窗口的DC来使用解决方法。在寻找合理快速的可实现替代方案后,我偶然发现了dwm缩略图。
在互联网上搜索DWMWA_FREEZE_REPRESENTATION根本找不到任何有用的东西,就好像没有人尝试使用它一样。我想我的问题很快就会成为谷歌搜索结果的第一名。
在Windows10的五月更新上运行。
我怎么才能让它工作呢?
发布于 2019-08-15 09:56:24
第3个和第4个参数实际上是BOOL*和sizeof(BOOL),但第1个参数需要是一个UWP窗口。DWMWA_FREEZE_REPRESENTATION仅适用于未在文档中提及的UWP窗口。
https://stackoverflow.com/questions/57231286
复制相似问题