dialog ステートメント,関数
ステートメント
構文 dialog string1 , num1 , num2 , num3 , num4 , num5 , string2 , num6
string1 :タイトルバーに表示する文字列
num1 :X座標
num2 :Y座標
num3 :幅
num4 :高さ
num5 :ダイアログのスタイル
string2 :フォント名(省略可能:System)
num6 :フォントのサイズ(省略可能)
機能
ダイアログボックスを作成します。
ダイアログボックスは1個しか作成できません。以前に作成したものは破棄されます。
X座標、Y座標、幅、高さは、ダイアログ座標系で指定します。座標はアプリケーションウィンドウの左上を 0,0 とする相対座標です。
ダイアログのスタイル には 0 を指定してください。
フォント名により、ダイアログ内で使用するコントロールのフォントを指定できます。
フォントのサイズは正の数のときポイントの10倍、負の数のときドット数となります。
例
120 → 12ポイント
-16 → 16ドット
フォント名、フォントのサイズは省略できます。
dialog ステートメントを実行した時点ではダイアログボックスは表示されません。作成した後は、control ステートメントでダイアログボックス内に各種コントロールを作成し、dialog 関数でダイアログボックスを表示します。
関数
構文 dialog(num1 , num2 )
num1 :ダイアログの表示モード | 制御を返してほしい通知コード
num2 :タイムアウトする時間(ミリ秒単位:0で無効)(省略可能:0)
機能
表示モードに1を指定すると dialog ステートメントで作成したダイアログボックスを表示し、コントロールの状態が変更されるのを待ち、状態が変更されたコントロールのコントロールIDを返します。どのような理由で制御を返したかは dlgnotify で調べます。
表示モードに0を指定すると表示されているダイアログボックスを消します。消すだけで、破棄するわけではないため dialog(1) を再度呼ぶと表示できます。
num2 を指定すると、指定した時間が経過すると自動的に制御を返します。このとき、返値は 0 になり、dlgnotify は DLGN_TIMEOUT になります。
通知コードに指定できるのは以下の5種類です。通知コードを指定しないと、BUTTON(BS_PUSHBUTTON / BS_DEFPUSHBUTTON) が押されたときしか制御を返しません。
DLGN_CLICKED
DLGN_DOUBLECLICKED
DLGN_CHANGE
DLGN_SELCHANGE
DLGN_STATICCLICKED
コントロールと通知コードの関係
BUTTON BS_PUSHBUTTON / BS_DEFPUSHBUTTON
押されたとき DLGN_CLICKED
BUTTON BS_AUTORADIOBUTTON / BS_AUTOCHECKBOX
状態が変更されたとき DLGN_CLICKED
LISTBOX
ダブルクリックされたとき DLGN_DOUBLECLICKED
選択状態が変更されたとき DLGN_SELCHANGE
COMBOBOX
ダブルクリックされたとき DLGN_DOUBLECLICKED
選択状態が変更されたとき DLGN_SELCHANGE
文字を入力したとき DLGN_CHANGE
EDIT
文字を入力したとき DLGN_CHANGE
STATIC (dialog の引数には DLGN_STATICCLICKED をつけて下さい)
クリックしたとき DLGN_CLICKED
ダブルクリックされたとき DLGN_DOUBLECLICKED
例1
ret = dialog(1)
BUTTON(BS_PUSHBUTTON / BS_DEFPUSHBUTTON)が押されたときのみ制御を返します。
例2
ret = dialog(1 | DLGN_CLICKED)
例1に加え、BUTTON(BS_AUTORADIOBUTTON / BS_AUTOCHECKBOX)の状態が変更されたときも制御を返します。
例3
ret = dialog(1 | DLGN_CLICKED | DLGN_CHANGE)
例2に加え、EDIT, COMBOBOX 内で文字を入力したときにも制御を返します。
例4
ret = dialog(1, 100)
100ミリ秒で制御を返します。
参照 control dlgvalue dlgitemcmd dlglistboxarray dlgtext$ dlgenable dlghwnd dlgvisible 通知コード(DIALOG)
最新情報 TOP マクロTOP