子のクラス名が重複している場合は?

解決


ガブリオット  2005-08-24 13:48:27  No: 91758  IP: [192.*.*.*]

FindWindowでクラス名から親のハンドルを取得し、
取得したハンドルからFindWindowExで子のハンドルをクラス名で探します。

このときクラス名がeditなのですが、
この親ハンドルはeditというクラス名を複数所持しているため
目的のハンドルが返ってきません。

※1:目的のハンドルとはWindowFromPointで調べたテキストボックスのハンドルです。
※2:WindowFromPointで対象のテキストボックスのハンドルを取得し、
     GetClassNameでクラス名(edit)を取得しました。

EnumWindowを使用し子ウインドウを列挙しましたがなぜか目的のハンドルも見つからず。。
たとえEnumWindowで列挙したところでクラス名が重複している場合は結局ハンドルを手動で指定する必要が出てくるのでしょうか?

編集 削除
ガッ  2005-08-24 13:50:59  No: 91759  IP: [192.*.*.*]

EnumChildWindowsでは?
まぁ、視覚的に一意ならば、
GetWindowRectなどでウィンドウの位置から推定するのが一番でしょう。

編集 削除
ガブリオット  2005-08-24 13:59:30  No: 91760  IP: [192.*.*.*]

ご指導ありがとうございます。
EnumChildWindows、GetWindowRectの詳細について検索してみます。
ボタンを押すたびにタブが切り替わる仕組みなので
恐らくGetWindowRectは使えないのではと推測しています。
(説明不足で申し訳ないです。)

編集 削除
CtrlID  2005-08-24 14:26:39  No: 91761  IP: [192.*.*.*]

なら、Control ID値を調べてみたら?
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200505/05050014.txt

編集 削除
通ってみた  2005-08-24 14:47:25  No: 91762  IP: [192.*.*.*]

ControlIDでは無理かと。

編集 削除
ガブリオット  2005-08-24 16:52:23  No: 91763  IP: [192.*.*.*]

GetWindowで自己解決しました。
皆様ありがとうございました。

編集 削除
ガブリオット  2005-08-24 16:52:23  No: 91764  IP: [192.*.*.*]

GetWindowで自己解決しました。
皆様ありがとうございました。

編集 削除