指定した座標の無効なウィンドウのハンドルの取得

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
CURA

指定した座標の無効なウィンドウのハンドルの取得

#1 投稿記事 by CURA »

件名の通り、指定した座標の無効状態のウィンドウハンドルを取得したいと思います。
無効でない普通のウィンドウならば、WindowFromPointを使用すればできますが、無効のウィンドウの場合はこの関数ではできないため、どうすればよいのでしょうか。
ChildWindowFromPointという関数があり、これは有効無効に関わらず取得できるようですが、これだと指定したウィンドウの子ウィンドウしか取得できないんですよね?
子ウィンドウでないものを取得したいのですが。
ChildWindowFromPointの、親ウィンドウを指定する所を0にしても、上手くできません。
どうしたらよいでしょうか。教えて下さい。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: 指定した座標の無効なウィンドウのハンドルの取得

#2 投稿記事 by 7 »

> ChildWindowFromPointという関数があり、これは有効無効に関わらず取得できるようですが、これだと指定したウィンドウの子ウィンドウしか取得できないんですよね?
> 子ウィンドウでないものを取得したいのですが。
GetParent()関数というものがあります。

> 無効でない普通のウィンドウならば、WindowFromPointを使用すればできますが、無効のウィンドウの場合はこの関数ではできないため、どうすればよいのでしょうか。
これは分かりません...。
NoWest
記事: 264
登録日時: 2005年5月31日(火) 10:52
お住まい: 高知
連絡する:

Re: 指定した座標の無効なウィンドウのハンドルの取得

#3 投稿記事 by NoWest »

> 件名の通り、指定した座標の無効状態のウィンドウハンドルを取得したいと思います。
> 無効でない普通のウィンドウならば、WindowFromPointを使用すればできますが、無効のウィンドウの場合はこの関数ではできないため、どうすればよいのでしょうか。
直接WindowFromPoint関数を使うことを考えずに、遠回りを考えましょう。

考え方は次の通り、

1.現在デスクトップ上にある全てのウィンドウを列挙する。
2.列挙されたウィンドウの中から無効になっているものを探す。
3.さらに無効状態のウィンドウの中からウィンドウ領域内に
  指定された座標が含まれているウィンドウを探す。

EnumWindow関数辺りをググって見てください。
返信する