DLGMODAL, DLGMODALWITHPARENT

実行時関数:ダイアログボックスを表示し,ボックス内で行われたユーザーのコントロール選択を処理します。

モジュールUSE DFLOGM

形式

result = DLGMODAL (dlg)
result = DLGMODALWITHPARENT (dlg, hwndParent)

dlg
(入力) 構造型 DIALOG。ダイアログボックス・パラメタを含みます。構造型 DIALOG の成分は,PRIVATE 属性で定義され,ユーザーが変更したり,個別に参照することはできません。

hwndParent
(入力) 整数型。ダイアログボックスの親ウィンドウを指定します。省略された場合,値は以下の順で決定されます。

  1. DLGMODAL がモーダルまたはモードレス・ダイアログボックスのコールバックから呼び出された場合,そのダイアログボックスは親ウィンドウです。

  2. プログラムが QuickWin または Standard Graphics アプリケーションである場合,フレーム・ウィンドウは親ウィンドウです。

  3. 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

関連情報

DLGEXITDLGINITDLGSETRETURNDLGSETSUB

	USE DFLOGM
	INCLUDE "MYDLG.FD"
	INTEGER return
	TYPE (DIALOG) mydialog
	...
	return = DLGMODAL (mydialog)
	...