実行時関数:指定したメッセージが,現在表示されているモードレス・ダイアログボックスの 1 つに対してか特定のダイアログボックスに対して出されたものかを決定します。
モジュール:USE DFLOGM
形式
result = DLGISDLGMESSAGE (mesg)
result = DLGISDLGMESSAGEWITHDLG (mesg, dlg)
mesg
(入力) 構造型 T_MSG。Windows メッセージを含みます。
dlg
(入力) 構造型 DIALOG。ダイアログボックス・パラメタを含みます。構造型 DIALOG の成分は,PRIVATE 属性で定義され,ユーザーが変更したり,個別に参照することはできません。
結果
結果の型は LOGICAL(4) です。メッセージがダイアログボックスで処理されたものであれば,.TRUE. が返されます。そうでなければ,.FALSE. が返され,メッセージに対して更なる処理が必要になります。
DLGISDLGMESSAGE は,DLGMODELESS を使ってモードレス・ダイアログボックスを表示する Windows アプリケーションのメッセージ・ループ内で呼び出されなければなりません。DLGISDGMESSAGE は,現在表示しているモードレス・ダイアログボックスの 1 つから出されたものかどうかを決定します。そうであれば,処理のためにダイアログボックスにメッセージを渡します。
DLGISDLGMESSAGEWITHDLG は,検証のために特定のダイアログボックスを指定します。メッセージ・ループが主アプリケーション内で行われており,現在活動状態のモードレス・ダイアログボックスが DLL で作成された時,DLGISDLGMESSAGEWITHDLG を使用します。
互換性
WINDOWS
関連情報
DLGMODELESS,モードレス・ダイアログボックスの使用
例
use dflogm include 'resource.fd' type (DIALOG) dlg type (T_MSG) mesg integer*4 ret logical*4 lret ... ! 主ダイアログボックスを作成し,コントロールとコールバックを設定します。 lret = DlgInit(IDD_THERM_DIALOG, dlg) lret = DlgSetSub(dlg, IDD_THERM_DIALOG, ThermSub) ... lret = DlgModeless(dlg, nCmdShow) ... ! メッセージを読み取り,処理します。 do while( GetMessage (mesg, NULL, 0, 0) ) ! ダイアログボックスにメッセージでの最初のチャンスを与えるために ! DlgIsDlgMessage が呼び出されなければならないことに注意してください。 if ( DlgIsDlgMessage(mesg) .EQV. .FALSE. ) then lret = TranslateMessage( mesg ) ret = DispatchMessage( mesg ) end if end do ! ダイアログボックスのメモリーをクリーンアップし,アプリケーションを終了します。 call DlgUninit(dlg) WinMain = mesg%wParam return