実行時関数:ダイアログボックスを表示し,ボックス内で行われたユーザーのコントロール選択を処理します。
モジュール:USE DFLOGM
形式
result = DLGMODAL (dlg)
result = DLGMODALWITHPARENT (dlg, hwndParent)
dlg
(入力) 構造型 DIALOG。ダイアログボックス・パラメタを含みます。構造型 DIALOG の成分は,PRIVATE 属性で定義され,ユーザーが変更したり,個別に参照することはできません。
hwndParent
(入力) 整数型。ダイアログボックスの親ウィンドウを指定します。省略された場合,値は以下の順で決定されます。
DLGMODAL がモーダルまたはモードレス・ダイアログボックスのコールバックから呼び出された場合,そのダイアログボックスは親ウィンドウです。
プログラムが QuickWin または Standard Graphics アプリケーションである場合,フレーム・ウィンドウは親ウィンドウです。
Windows のデスクトップ・ウィンドウは親ウィンドウです。
結果
結果の型は INTEGER(4) です。省略時の設定では,成功した場合にはダイアログを終了させたコントロール指標が返されます。そうでなければ,-1 が返されます。返し値は,DLGSETRETURN サブルーチンで変更することができます。
実行中,DLGMODAL はダイアログボックスを表示し,ユーザーのコントロール選択を待ちます。コントロール選択が行われると,選択されたコントロールのコールバック・ルーチン (DLGSETSUB で設定) が,もしあれば,呼び出されます。
ダイアログは,終了コントロールが実行されるまで活動状態のままです。「OK」と「Cancel」ボタンに関連した基本終了または独自のコントロール・コールバック内の DLGEXIT のどちらかで終了します。DLGMODAL は,ダイアログボックスが終了するまで,値を返しません。
DLGMODAL の基本返し値は,終了を引き起こしたコントロール識別子 (たとえば,「OK」ボタンの IDOK,「Cancel」ボタンの IDCANCEL) です。自分のダイアログ・コントロール・コールバック・ルーチンの 1 つで DLGSETRETURN を使って独自の返し値を指定することができます。返し値として -1 を指定すべきではありません。これは,ダイアログを開けなかった時に DLGMODAL が返すエラー値であるためです。
基本値 (上述の hwndParent を参照) 以外に親ウィンドウを指定したい場合,DLGMODALWITHPARENT を使います。特に,SDI または MDI Windows アプリケーションで,親ウィンドウを主アプリケーション・ウィンドウにしたい場合です。モーダル・ダイアログボックスが表示されている間,親ウィンドウにユーザー入力を行うことはできません。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
DLGEXIT,DLGINIT,DLGSETRETURN,DLGSETSUB
例
USE DFLOGM INCLUDE "MYDLG.FD" INTEGER return TYPE (DIALOG) mydialog ... return = DLGMODAL (mydialog) ...