我只想获取窗口中窗口的可见部分,作为一个区域。
只想获取用户看到的区域。
当然,以编程方式。这是一个例子。我有以下窗口组成:
+------------------------------------------+
| |
| +=============+ |
| | | |
| | A +--------------------------+
| | | |
| C | | B |
| | +--------------------------+
| | | |
+-----------| |----------------+
| |
+-------------+
假设我只对窗口 A 感兴趣。
然后我需要的是一个区域的句柄,如下所示:
+=============+
| |
| A +-----+
| |
| |
| +-----+
| |
| |
| |
+-------------+
或者,我应该能够通过以下方式获取任何其他窗口的区域。
到目前为止,我用过本指南 https://devblogs.microsoft.com/oldnewthing/20030902-00/?p=42693,并且我同意 GetClipBox 返回 0、1、2 或 3,如果您相应地有 0 -> Error,1 表示 NULLREGION(生成的 rgn 对用户不可见),2 -> SIMPLEREGION 和 3 表示 COMPLEXREGION。到目前为止,我需要复杂的区域。
大师提问:但我如何获得它的坐标和尺寸 ?
(添加信息)
是否可以将复杂区域(由操作系统创建,而不是我创建)重建为其组成的简单区域。冯远建议你不能:
http://www.codeguru.com/forum/archive/index.php/t-126543.html http://www.codeguru.com/forum/archive/index.php/t-126543.html
(添加信息)
那么,有没有办法求出 A 和 A 的区域?将其转换为 PolyPath 或具有角坐标的漂亮几何图形 ?
顺便说一句,我使用 JNA (Java) ,但解决相同问题的 C# 或 .VB 代码就足够了。
Cheers.