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

解決


タンウ  2008-05-09 10:49:13  No: 100694

(VB6-WindowsXP)

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

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


  2008-05-09 20:30:56  No: 100695

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

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

#試していません。


タンウ  2008-05-10 02:43:36  No: 100696

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

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


魔界の仮面弁士  2008-05-10 03:23:30  No: 100697

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

# Multiple Document Interface の略。


タンウ  2008-05-10 04:56:23  No: 100698

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

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加