【发布时间】:2011-05-10 21:31:04
【问题描述】:
我只想获取窗口中窗口的可见部分,作为一个区域。
只想获取用户看到的区域。 当然,以编程方式。这是一个例子。我有以下窗口组成:
+------------------------------------------+
| |
| +=============+ |
| | | |
| | A +--------------------------+
| | | |
| C | | B |
| | +--------------------------+
| | | |
+-----------| |----------------+
| |
+-------------+
假设我只对窗口 A 感兴趣。 那么我需要的是一个看起来像这样的区域的句柄:
+=============+
| |
| A +-----+
| |
| |
| +-----+
| |
| |
| |
+-------------+
或者,我应该能够通过以下方式获取任何其他窗口的区域。
到目前为止,我使用了本指南: http://blogs.msdn.com/b/oldnewthing/archive/2003/09/02/54758.aspx
我同意 GetClipBox 返回 0、1、2 或 3,如果您有相应的 0 -> 错误,1 表示 NULLREGION(生成的 rgn 对用户不可见),2 -> SIMPLEREGION,3 表示 COMPLEXREGION .所以,到目前为止,我需要复杂区域。
大师问题:但是我如何获得它的坐标和尺寸?
(添加信息)
是否可以将 COMPLEXREGION(由操作系统创建,而不是我创建)重建为组成它的简单区域。冯远建议你不能:
http://www.codeguru.com/forum/archive/index.php/t-126543.html
(添加信息)
那么,有没有办法找到 A 的区域并将其转换为 PolyPath 或具有角坐标的漂亮几何图形?
顺便说一下,我使用的是 JNA (Java),但解决相同问题的 C# 或 .VB 代码就足够了。
干杯。
【问题讨论】:
标签: java windows gdi visible winapi