- 題名: MDIの子ウィンドウに対するメッセージ
- 日時: 2005/01/21 10:37:34
- ID: 8590
- この記事の返信元:
- (なし)
- この記事への返信:
- [8591] Re[1]: MDIの子ウィンドウに対するメッセージ2005/01/21 10:53:23
- ツリーを表示
じゃんぬねっと です。 ■No8592に返信(ODさんの記事) > ActiveFormのCapsionでそのフォームの種類を > 判断し、各子ウィンドウのメソッドを呼ぶように > 対応できそうです。 それは、保守性を考えると宜しくない仕様かと思われます。 ちゃんと Type を見るようにした方が安全です。 まあ、実装者の自由で、私がどうこう口出しできるものではありませんが... Source:----------------------------------------------------- 【basMain (標準モジュール)】 ' エントリ ポイント Public Sub Main() ' フォームの新しいインスタンスを生成する Dim hFormMain As MDIForm1 Set hFormMain = New MDIForm1 ' フォームの表示 Call hFormMain.Show(vbModeless) End Sub ------------------------------------------------------------ 【Form1 〜 Form3 (MDI 子フォーム 3 つ)】 ' メッセージを受け取るメソッド Public Sub ShowMessage(ByVal nPrompt As String) Call MsgBox(nPrompt) End Sub ------------------------------------------------------------ 【MDIForm1 (MDI 親フォーム)】 ' プライベート メンバ (MDI 親フォームはこの 3 つの MDI 子フォームを持つ) Private mForm1 As Form1 Private mForm2 As Form2 Private mForm3 As Form3 ' Load() イベント Private Sub MDIForm_Load() ' ロード時に MDI 子フォームの新しいインスタンスを生成する Set mForm1 = New Form1 Set mForm2 = New Form2 Set mForm3 = New Form3 ' MDI 子フォームをすべて表示 Call mForm1.Show(vbModeless) Call mForm2.Show(vbModeless) Call mForm3.Show(vbModeless) End Sub ' メッセージを送信 Private Sub Picture1_Click() Select Case TypeName(Me.ActiveForm) Case "Form1" Call mForm1.ShowMessage("ここは Form1 ですか?") Case "Form2" Call mForm2.ShowMessage("ここは Form2 ですか?") Case "Form3" Call mForm3.ShowMessage("ここは Form3 ですか?") End Select End Sub ------------------------------------------------------------
分類:[VB6以前]
MDIで親ウィンドウで発生した要求に対する処理を、
アクティブな子ウィンドウ側で実行したいのですが、
親から子ウィンドウの関数を呼ぶ方法、または
子ウィンドウに対してメッセージを送信し、子ウィンドウ側で
そのイベントを受ける方法がわかりません。
どなたか、ご教授お願いします。