ダイアログボックスのアクティブ動作について
Posted: 2006年10月07日(土) 01:35
メインウインドウに二つのボタンを貼り付け、
一つをクリックすると「メッセージボックス(モーダル・ダイアログ)」、
もう一つをクリックすると「モードレス・ダイアログ」を開くような簡単な
プログラムを書きます。
ここで、メッセージボックスを表示させてから、
デスクトップの他の場所などをクリックして一度全体を非アクティブにして、
もう一度このメッセージボックスをアクティブにしたい時、
「親であるメインウインドウをクリックしても」親子関係にあるメッセージ
ボックスをアクティブにすることが出来ます。
ただしこの同様の動作を、その前にモードレスダイアログを表示させてから
行おうとすると、うまく行きません。(メッセージボックスを再びアクティブにするには
その小さなメッセージボックスウインドウ自体をクリックしなければならなくなります。)
モードレスダイアログが存在する場合でも、上に書いたような親子関係が生きた
アクティブ動作をさせるにはどうすれば良いでしょうか?
(AB4.24/WinMe)
一つをクリックすると「メッセージボックス(モーダル・ダイアログ)」、
もう一つをクリックすると「モードレス・ダイアログ」を開くような簡単な
プログラムを書きます。
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
MessageBox(hMainWnd,"Message","MessageBox",MB_OK)
End Sub
Sub MainWnd_CommandButton2_Click()
hModelessDialog=CreateDialog(0,"ModelessDialog")
ShowWindow(hModelessDialog,SW_SHOW)
End Sub
デスクトップの他の場所などをクリックして一度全体を非アクティブにして、
もう一度このメッセージボックスをアクティブにしたい時、
「親であるメインウインドウをクリックしても」親子関係にあるメッセージ
ボックスをアクティブにすることが出来ます。
ただしこの同様の動作を、その前にモードレスダイアログを表示させてから
行おうとすると、うまく行きません。(メッセージボックスを再びアクティブにするには
その小さなメッセージボックスウインドウ自体をクリックしなければならなくなります。)
モードレスダイアログが存在する場合でも、上に書いたような親子関係が生きた
アクティブ動作をさせるにはどうすれば良いでしょうか?
(AB4.24/WinMe)