MIDアプリケーションの子フォームのうち、アクティブなものを求めるには?

解決


タンウ  2008-05-09 01:49:13  No: 100694  IP: 192.*.*.*

(VB6-WindowsXP)

自分で作ったものではないMIDアプリケーションがあるのですが、
MIDウインドウの子フォームのうち、アクティブなウインドウのウインドウハンドルを求めるにはどうすればいいでしょうか?
APIの GetActiveWindow というものを見つけたのですが、
これは同一スレッドでないと取得できないようです。

なにかよい方法はないでしょうか? お知恵をお貸し頂けないでしょうか。
よろしくお願い致します。

編集 削除
 2008-05-09 11:30:56  No: 100695  IP: 192.*.*.*

取得したいMDIフォームのハンドルに
SendMessageでWM_MDIGETACTIVEを送ると
戻り値にハンドルが返ってくるようです。
子フォームが存在しないときはNULLかな?

hChild = SendMessage(hTargetMDI,WM_MDIGETACTIVE,0,0)

#試していません。

編集 削除
タンウ  2008-05-09 17:43:36  No: 100696  IP: 192.*.*.*

早速のご回答、ありがとうございます。

教えて頂いたやり方で見事に取得出来ました!!
 
また、教えて頂いた WM_MDIGETACTIVE をネットで検索することで、MIDウインドウを操作するいろいろな方法も知ることも出来ました。
おかげさまで、本当に助かりました。
どうもありがとうございました。

編集 削除
魔界の仮面弁士  2008-05-09 18:23:30  No: 100697  IP: 192.*.*.*

MID ではなく、MDI ですよ。>タンウさん

# Multiple Document Interface の略。

編集 削除
タンウ  2008-05-09 19:56:23  No: 100698  IP: 192.*.*.*

> MID ではなく、MDI ですよ。

あれっ、ホントですね ;;

MID だと文字列の一部を取り出す関数(Mid関数)になってしまいますね(;´Д`)

ご指摘、どうもありがとうございました。

編集 削除