ウィンドウのウィンドウの表示部分のみを領域として取得したい。
ユーザーが見ている領域だけを取得したい。もちろん、プログラム的に。ここに例があります。次のウィンドウ構成があります。
+------------------------------------------+
| |
| +=============+ |
| | | |
| | A +--------------------------+
| | | |
| C | | B |
| | +--------------------------+
| | | |
+-----------| |----------------+
| |
+-------------+
ウィンドウ A だけに関心があるとします。その場合、次のような領域へのハンドルが必要になります。
+=============+
| |
| A +-----+
| |
| |
| +-----+
| |
| |
| |
+-------------+
または、次の方法で他のウィンドウの領域を取得できるはずです。
これまでのところ、次のガイドを使用しました: http://blogs.msdn.com/b/oldnewthing/archive/2003/09/02/54758.aspx
また、GetClipBox が 0、1、2、または 3 を返すことに同意します。したがって、0 -> エラー、NULLREGION の場合は 1 (結果の rgn はユーザーには表示されません)、2 -> SIMPLEREGION、および COMPLEXREGION の場合は 3 です。これまでのところ、複雑な領域が必要です。
マスターの質問:しかし、どうすればその座標と寸法を取得できますか?
(情報追加)
COMPLEXREGION (私ではなく、OS によって作成された) を、構成されている単純な REGION に再構築することは可能ですか? Feng Yuan は、次のことはできないと提案しています。
http://www.codeguru.com/forum/archive/index.php/t-126543.html
(情報追加)
それで、Aの領域を見つけて、それをPolyPathまたはその角の座標を持つ素敵な幾何学的図形に変換する方法はありますか?
ちなみに、私は JNA (Java) を使用していますが、同じ問題を解決する C# または .VB コードで十分です。
乾杯。