タイトル : Re^4: 解決しました。 投稿日 : 2010/01/09(Sat) 15:35 投稿者 : まつもと
> オーナーウィンドウであるForm1 のハンドルは取れたのですよね。 > だったら、そのハンドルを指定して子ウィンドウであるForm2 のクラス名を検索する > 事でFindWindowExで取得できるはずですが。 > > > Form1の子ウインドウでクラス名が「ThunderRT6FormDC」のもの(1つしか取れないと > Form1 と Form2 とは同じクラス名だったりしませんか? > > > 考えていたので最初に取れたものとしました)をForm2と特定できると考えています。 > > A@の中でスレッドIDが一致するウインドウの子ウインドウをEnumChildWindowsで列挙。 > Bその中で最初に取れたフォームオブジェクトをForm2と特定。 > > クラス名を照合されているのならいいのですが、それなら、EnumChildWindowsで列挙する > までもないのではないでしょうか? FindWindowEx だけで取得できますが。 FindWindowとFindWindowExの使い方を混同してました。 FindWindowExでForm1のウインドウハンドルとForm2のクラス名を引数に検索したら同じ 結果が得られました。 こちらの方がソースもすごくすっきりしました。 本当にありがとうございました。 |