DLGISDLGMESSAGE, DLGISDLGMESSAGEWITHDLG

実行時関数:指定したメッセージが,現在表示されているモードレス・ダイアログボックスの 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