DOBON.NET DOBON.NETプログラミング掲示板過去ログ

マウスポインタ位置にあるウィンドウを取得したい。

環境/言語:[WindowsXP VB.NET .NET Framework2.0]
分類:[.NET]

MDI子フォームのみ画面をキャプチャしたいのですが、
Alt+PrintScreenでは、親フォームごとキャプチャされてしまうので、
マウスポインタ位置にあるウィンドウの情報(位置、サイズ)を取得して、
画面全体のキャプチャから切り出せばよいのではと思ってます。

マウスポインタ位置にあるウィンドウの情報を
取得するにはどうすればよいでしょうか。
Win32 APIでもいいなら

GetCursorPos
WindowFromPoint

でウィンドウハンドルを取得できます。

参考
指定された座標を含むウィンドウのハンドルを取得する(WindowFromPoint)
http://naoko.wankuma.com/win32api/win32api_0010_WindowFromPoint.html
> WindowFromPoint
だと親ウィンドウになるかも。

必要ならば
ChildWindowFromPoint
もしくは
RealChildWindowFromPoint
でウィンドウを取得してください。
返答ありがとうございます。

教えていただいたコードを試したところ、
マウスカーソルをタイトルバーに乗せたところ、そのウィンドウのサイズ等が
取得できたのですが、そのウィンドウ内のテキストボックスにマウスカーソルを
乗せると、テキストボックスのサイズになってしまいました。

ウィンドウ内のどの場所にマウスカーソルをのせてもそのウィンドウの
情報を取得するには、どうすればよいのでしょうか?
>WindowFromPoint
でMDIの親ウィンドウになってしまうのであれば、
ChildWindowFromPointでその親ウィンドウが親になるウィンドウまで
さかのぼっているのはどうでしょうか?

DOBON.NET | プログラミング道 | プログラミング掲示板