English help on website



message文(Ver8.97対応版)
目次− message文
メッセージボックスを出します。メッセージボックスはいわゆるインフォメーションアイコン&OKボタンのスタイルで出ます。
パラメータでメッセージの文字列を指定します。
数値型の値は文字列型に変換して指定してください。
message "秀丸エディタです";
message str(100);

第2パラメータで、タイトルを指定できます。(V8.71以降)
message "内容", "タイトル";

第3パラメータで、フラグを指定できます。(V8.71以降)
Win32APIのMessageBoxや、vbsのMsgBoxのように指定できます。
message "内容", "タイトル", 0x03|0x20; //MB_YESNOCANCEL | MB_ICONQUESTION
message str(result);
フラグは以下の値の組み合わせになります。

 メッセージボックスの種類:
 0x00 OKのみ (MB_OK相当)
 0x01 OK/キャンセル (MB_OKCANCEL相当)
 0x02 中止/再試行/無視 (MB_ABORTRETRYIGNORE相当)
 0x03 はい/いいえ/キャンセル (MB_YESNOCANCEL相当)
 0x04 はい/いいえ (MB_YESNO相当)
 0x05 再試行/キャンセル (MB_RETRYCANCEL相当)
 アイコンの種類:
 0x10 中止アイコン(MB_ICONSTOP相当)
 0x20 ?マークアイコン(MB_ICONQUESTION相当)
 0x30 !マークアイコン(MB_ICONEXCLAMATION相当)
 0x40 iマークアイコン(MB_ICONINFORMATION相当)

フラグを付ける場合はresultの意味がMessageBoxの返り値と同等で、押したボタンを表します。

 1 OK(IDOK相当)
 2 キャンセル(IDCANCEL相当)
 3 中止(IDABORT相当)
 4 再試行(IDRETRY相当)
 5 無視(IDIGNORE相当)
 6 はい(IDYES相当)
 7 いいえ(IDNO相当)

関数として使用することもできます。
関数の場合は返り値が押したボタンを表します。
#ret = message( "内容", "タイトル", 0x03|0x20 ); //MB_YESNOCANCEL | MB_ICONQUESTION
message str(#ret);

第4パラメータと第5パラメータでタイムアウトを指定できます。(V8.75以降)
第4パラメータはタイムアウトするまでの時間をミリ秒単位で指定します。
0を指定するとタイムアウト無しになります。
第5パラメータはタイムアウトした場合に自動的に押すボタンの値を指定します。
#ret = message( "内容", "タイトル"
              , 0x03|0x20    //MB_YESNOCANCEL | MB_ICONQUESTION
              , 5000, 2      //5秒後にキャンセル
               );

第6パラメータ以降を指定して、メッセージボックスを出す位置を指定することができます。(V8.96以降)
値の意味は以下の通りです。

 0x00 通常(省略と同じ)
 0x01 画面中央
 0x02 画面左上からの位置
 0x03 画面右上からの位置
 0x04 画面左下からの位置
 0x05 画面右下からの位置
 0x06 カーソル位置
 0x11 ウィンドウ中央
 0x12 ウィンドウ左上からの位置
 0x13 ウィンドウ右上からの位置
 0x14 ウィンドウ左下からの位置
 0x15 ウィンドウ右下からの位置

第7パラメータ、第8パラメータは位置をx,y座標で指定します。
値はDPIが100%のときのピクセル単位で、DPIが200%のときは指定の2倍の値のピクセル数になります。
第6パラメータで左上/右上/左下/右下からの位置を指定しているときに、第7パラメータ、第8パラメータが使われます。

例(文としての使い方)
message "内容", "タイトル"
              , 0x03|0x20    //MB_YESNOCANCEL | MB_ICONQUESTION 
              , 0, 0         //タイムアウトは無し
              , 0x15, 100, 50  //ウィンドウ右下からの位置
               ;
#ret = result;

例(関数としての使い方)
#ret = message( "内容", "タイトル"
              , 0x03|0x20    //MB_YESNOCANCEL | MB_ICONQUESTION 
              , 0, 0         //タイムアウトは無し
              , 0x15, 100, 50  //ウィンドウ右下からの位置
               );