<Return[MN]><Top>

MessageBoxEx

Declare Function Api_MessageBoxEx& Lib "user32" Alias "MessageBoxExA" (ByVal hWnd&, ByVal lpText$, ByVal lpCaption$, ByVal uType&, ByVal wLanguageId&)

Declare Function MessageBoxEx Lib "user32" Alias "MessageBoxExA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, ByVal wLanguageId As Long) As Long

メッセージボックスの作成、表示、操作を行う。メッセージボックスは、アプリケーション定義のメッセージとタイトル、および任意の定義済みアイコンとプッシュボタンの組み合わせによって構成される。wLanguageId パラメータは、定義済みプッシュボタンの言語リソースを指定する。

パラメータ
hWnd
    [入力]作成したいメッセージボックスのオーナーウィンドウのハンドルを指定する。

    NULL を指定すると、オーナーウィンドウを持たないメッセージボックスが作成される。
lpText
    [入力]表示したいメッセージを保持する、NULL で終わる文字列へのポインタを指定する。
lpCaption
    [入力]ダイアログボックスのタイトルを保持する、NULL で終わる文字列へのポインタを指定する。

    NULL を指定すると、既定のタイトル( 「エラー」)が表示される。
uType
    [入力]ダイアログボックスの内容と動作を指定する。次のフラググループの任意の組み合わせを指定する。
    メッセージボックス内に表示したいボタンを指示するには、次の値のいずれかを指定する。

    値                                           

意味                                                                                                                          

    MB_ABORTRETRYIGNORE

メッセージボックスに[中止]、[再試行]、[無視]の各プッシュボタンを表示する。

    MB_CANCELTRYCONTINUE

 

Windows 2000:メッセージボックスに[キャンセル]、[再実行]、[続行]の各プッシュボタンを表

示する。MB_ABORTRETRYIGNORE の代わりに、このメッセージボックスタイプを使う。

    MB_HELP

 

 

Windows 95/98、Windows NT 4.0 以降:メッセージボックスに[ヘルプ]ボタンを追加する。ユーザー

が[ヘルプ]ボタンをクリックするか F1 キーを押すと、システムはオーナーへ WM_HELP メッセージを

送信する。

    MB_OK

メッセージボックスに[OK]プッシュボタンだけを表示する。これは既定のメッセージボックスタイプ。

    MB_OKCANCEL

メッセージボックスに[OK]、[キャンセル]の各プッシュボタンを表示する。

    MB_RETRYCANCEL

メッセージボックスに[再試行]、[キャンセル]の各プッシュボタンを表示する。

    MB_YESNO

メッセージボックスに[はい]、[いいえ]の各プッシュボタンを表示する。

    MB_YESNOCANCEL

メッセージボックスに[はい]、[いいえ]、[キャンセル]の各プッシュボタンを表示する。

    メッセージボックス内にアイコンを表示するには、次の値のいずれかを指定する。

   値                                           

意味                                                                                                                          

    MB_ICONEXCLAMATION ,
    MB_ICONWARNING

感嘆符(!)アイコンを表示する。

 

    MB_ICONINFORMATION ,

    MB_ICONASTERISK

丸の中に小文字の「i」が描かれたアイコンを表示する。

 

    MB_ICONQUESTION

疑問符(?)アイコンを表示する。

    MB_ICONSTOP ,
    MB_ICONERROR ,
    MB_ICONHAND  

停止マークアイコンを表示する。

 

 

    既定のプッシュボタンを表示するよう指示するには、次の値のいずれかを指定する。

   値                                           

意味                                                                                                                          

    MB_DEFBUTTON1

最初のボタンを既定のプッシュボタンにする。
MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4 のいずれかが指定されていない限り、MB_DEFBUTTON1 が既定になる。

    MB_DEFBUTTON2

2 番目のボタンを既定のプッシュボタンにする。

    MB_DEFBUTTON3

3 番目のボタンを既定のプッシュボタンにする。

    MB_DEFBUTTON4

4 番目のボタンを既定のプッシュボタンにする。

    ダイアログボックスのモーダル状態を指示するには、次の値のいずれかを指定する。

   値                                           

意味                                                                                                                          

    MB_APPLMODAL

 

 

 

 

 

ユーザーは、メッセージボックスに応答しなければ、hWnd パラメータで指定されたウィンドウで作業を継

続できません。他のスレッドのウィンドウへ移動して作業することはできる。
アプリケーション内のウィンドウの階層にもよりますが、ユーザーは、同じスレッド内の他のウィンドウへ移

動できることがある。このメッセージボックスの親ウィンドウに対するすべての子ウィンドウ( メッセージ

ボックスの「兄弟」ウィンドウ)は、自動的に無効になるが、ポップアップウィンドウはこの限りではない。
MB_APPLMODAL は、MB_SYSTEMMODAL と MB_TASKMODAL のどちらも指定されていない場

合の既定値である。

    MB_SYSTEMMODAL

 

 

 

メッセージボックスが WS_EX_TOPMOST スタイルを備えている以外は、MB_APPLMODAL と同じで

ある。ユーザーがすぐに対処する必要がある重大なエラー( たとえばメモリの不足)を通知するために、

システムモーダルのメッセージボックスを使う。ユーザーは、hWnd に関連付けられていないウィンドウを通

常の方法で操作できる。

    MB_TASKMODAL

 

 

 

hWnd パラメータが NULL の場合、現在のスレッドに所属するすべてのトップレベルウィンドウが無効に

なること以外は、MB_APPLMODAL と同じである。呼び出し側のアプリケーションまたはライブラリが有効

なウィンドウハンドルを持っておらず、かつ他のスレッドを中断せずに現在のスレッドの他のウィンドウへの

入力を禁止したいときにこのフラグを使う。

    これら以外のオプションの指示をするには、次の値を指定する。

    値                                                         

意味                                                                                                             

    MB_DEFAULT_DESKTOP_ONLY

 

 

 

 

 

Windows NT/2000:対話型のウィンドウステーションで、システムが既定のデスクトップにのみメッセージボックスを表示すること以外は、MB_SERVICE_NOTIFICATION と同じで ある。
Windows NT 4.0 以前:現在の入力デスクトップが既定のデスクトップではない場合、関数は失敗する。
Windows 2000:現在の入力デスクトップが既定のデスクトップではない場合、ユーザーが既定のデスクトップへ切り替えるまで、MessageBox は制御を返さない。
Windows 95/98:このフラグは何もしない。

    MB_RIGHT

テキストを右寄せする。

    MB_RTLREADING

 

メッセージとキャプションの各テキストを右から左へ表示する。ヘブライ語やアラビア語をサポートしているシステムで有効である。

    MB_SETFOREGROUND

 

メッセージとキャプションの各テキストを右から左へ表示する。ヘブライ語やアラビア語をサポートしているシステムで有効である。

    MB_TOPMOST WS_EX_TOPMOST

ウィンドウスタイルを指定し、メッセージボックスを最前面ウィンドウとして作成する。

    MB_SERVICE_NOTIFICATION

 

 

 

 

 

 

Windows NT/2000:呼び出し側がユーザーへイベントを通知するサービスである場合に指定す

る。どのユーザーもコンピュータにログオンしていない場合も、この関数は現在のアクティブなデスクトップにメッセージボックスを表示する。
Terminal Services:呼び出し側のスレッドが偽装トークンを備えている場合、この関数はメッセージボックスを、偽装トークン内で指定されているセッションへリダイレクトする。
このフラグをセットするときは、hWnd パラメータに NULL を指定しなければならない。その結果、hWnd に対応するデスクトップではなく、他のデスクトップにメッセージボックスを表示できる。

    MB_SERVICE_NOTIFICATION_NT3X

 

Windows NT/2000:この値は、Windows NT 3.51 で MB_SERVICE_NOTIFICATION と

して定義された値に対応する。

wLanguageId
    [入力]定義済みのプッシュボタンに含まれる文字列の言語を指定する。この値は マクロが返す値と同じ形式でなければならない。
    それぞれの言語にローカライズされた Windows 95/98 や Windows NT/2000 は一般に、特定の言語セットのリソースだけを保持しているこ

    とに注意する。たとえば、U.S. 版は LANG_ENGLISH、フランス語版は LANG_FRENCH、ドイツ語版は LANG_GERMAN、日本語

    版は LANG_JAPANESE を提供します。ほかに、各言語版は LANG_NEUTRAL も提供する。これは wLanguageId パラメータで指定

    できる値を制限する。

    開発者は言語識別子を指定する前に、システムにインストールされているロケール(国情報)を列挙するべきである。
 

戻り値
    関数が成功すると、次の値のいずれかが返る。

    値                     

意味                                

    IDABORT

[中止]ボタンが選択された。

    IDCANCEL

[キャンセル]ボタンが選択された。

    IDCONTINUE

[続行]ボタンが選択された。

    IDIGNORE

[無視]ボタンが選択された。

    IDNO

[いいえ]ボタンが選択された。

    IDOK

[OK]ボタンが選択された。

    IDRETRY

[再試行]ボタンが選択された。

    IDTRYAGAIN

[再実行]ボタンが選択された。

    IDYES

[はい]ボタンが選択された。

    メッセージボックスに[キャンセル]ボタンが用意されている状態で、ユーザーが Esc キーを押すか[キャンセル]ボタンを選択すると

    IDCANCEL 値が返る。メッセージボックスに[キャンセル]ボタンがない場合、Esc キーを押しても何も起こらない。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

 

解説
    システムのメモリ不足を知らせるためにシステムモーダルのメッセージボックスを作成する場合、lpText と lpCaption の各パラメータが指す文

    字列をリソースファイルから取得するべきではない。このような状況でリソースをロードしようとしても、失敗する可能性がある。
    ダイアログボックスが表示されている場合にメッセージボックスを作成するときは、hWnd パラメータにダイアログボックスのハンドルを指定す

    る。hWnd パラメータは、ダイアログボックス内のコントロールなどの子ウィンドウを指定すべきではなあい。