我只想在窗口中获取窗口的可见部分,作为一个区域。
只想获取用户看到的区域。当然,以编程方式。这是一个例子。我有以下窗口组成:
+------------------------------------------+
| |
| +=============+ |
| | | |
| | 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 代码就足够了。
干杯。