DlgBox("ID_str") ;
DlgBox コマンドは、ダイアログボックス(子ウインドウ)を開
きます。
"ID_str":ダイアログボックスの認識コード
備考
ダイアログボックスのデザインやプログラミングは、通常のIMWのプログラミングとほぼ同じで、違う部分とは、予約サブルーチンの前に、"ID_str" で指定した文字列を付けます。
例えば、ダイアログボックスが開かれると、ID_str CREATE というサブルーチンが実行されます。左クリックの場合は、ID_str LBUTTONDOWN が実行されます。
ダイアログボックスが開かれている時に、エラーが発生した場合、ダイアログボックスのみ強制的に閉じられ、親ウインドウは閉じません。
複数のダイアログボックスを開くことはできません。ダイアログボックスが開いている状態で、DlgBox コマンドを実行しても無視されます。
DlgBox コマンドは、予約サブルーチン CREATE の中では使えません。CREATE 実行中は、親ウインドウの実体がまだ存在しないためです。
その他、ダイアログボックス内でのプログラミングについて、以下の注意事項があります。
ダイアログボックスの位置
SetWinPos コマンドでダイアログボックスの位置を指定する場合、座標は親ウインドウからの相対座標ではなく、スクリーンからの絶対座標になります。
コントロール
CreateControl コマンドにより、ダイアログボックス内で準備したコントロールはダイアログボックスを閉じると自動的に消滅します。
親ウインドウ内で準備したコントロールについては、ダイアログボックス内からでも操作できます。この場合、親のコントロールは常に親に貼りついています。
タイマーの設定
ダイアログボックス内で、親ウインドウとは独立した別のタイマーを設定できます。ダイアログボックス内でのタイマー処理のサブルーチンは、ID_str TIMER になります。(ID_str は任意の認識文字列)
ダイアログボックス内で準備したタイマーは、ダイアログボックスを閉じると自動的に消滅します。
描画
ダイアログボックス内への描画は、各コマンドのスクリーン番号を「-1」とします。
ダイアログボックスの CREATE 内では SubScreen コマンドにより、新規に裏画面を設定することはできません。
親ウィンドウで準備した裏画面への描画は、ダイアログボックス内からも共通に描けます。
裏画面の画像は CopyBMP コマンドによりダイアログボックスにコピーできます。
ファイル
ダイアログボックス内で開いたファイルは、ダイアログボックスを閉じると
自動的に閉じます。
親ウインドウ内でファイルを開き、そのままダイアログボックスを開いた
場合も、ダイアログボックスを閉じるとファイルは閉じてしまいます。
変数、配列、サブルーチン
変数や配列については、親ウインドウと共通で使えます。
値の代入、参照ができます。
予約サブルーチンについては、認識コードを付けて区別(ID_str CREATE など)
されますが、ユーザーが記述したサブルーチンは共通に使われます。
call("sub_name") ; とすると、sub_name というサブルーチンを、親ウインドウ
からでも、ダイアログボックスからでも実行できます。
その他
ダイアログボックス内では以下のコマンドが使えません。
SetWinStyle ウインドウスタイルは固定
Menu,PopupMenuEX メニューは使用不可
Data 配列変数の作成(親の配列は利用できる)
SubScreen 裏画面の作成(親の裏画面は利用できる)
Create3DPack 3Dパックの作成(親の3Dパックは利用できる)
参照
MessBox