<Return[MN]><Top>

MessageBoxIndirect

Declare Function Api_MessageBoxIndirect& Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS)

Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxA" (lpMsgBoxParams As MSGBOXPARAMS) As Long

メッセージボックスの作成、表示、操作を行う。メッセージボックスには、アプリケーション定義のメッセージテキスト、タイトル、アイコン、および、定義済みのプッシュボタンの組み合わせが格納される。

パラメータ
lpMsgBoxParams
    メッセージボックスを表示するための情報を格納する、MSGBOXPARAMS 構造体へのポインタを指定する。

戻り値
    メッセージボックスを作成するためのメモリが不足している場合は、0 が返る。
    関数が成功すると、ダイアログボックスから返される、次のいずれかのメニュー項目の値が返る。

    値                 

意味                                           

    IDABORT

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

    IDCANCEL

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

    IDIGNORE

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

    IDNO

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

    IDOK

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

    IDRETRY

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

    IDYES

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

    メッセージボックスに[キャンセル]ボタンがある場合に、ESC キーを押すか、または[キャンセル]ボタンを選択すると、値 IDCANCEL

    が返る。メッセージボックスに[キャンセル]ボタンがない場合は、ESC キーを押しても何も起こらない。

解説
    システムモーダルメッセージボックスを使ってシステムのメモリ不足を表示する場合、MSGBOXPARAMS 構造体の lpszText メンバと

     lpszCaption メンバが示す文字列をリソースファイルから取得してはならない。リソースをロードしようとすると失敗する。
    アプリケーションで MessageBoxIndirect 関数を呼び出し、MSGBOXPARAMS 構造体の dwStyle メンバに MB_ICONHAND フラグと

    MB_SYSTEMMODAL フラグが指定された場合、システムにより、使用可能なメモリ量に関わらず結果のメッセージボックスが表示され

    る。これらのフラグが指定されると、システムはメッセージボックスのテキストの長さを 3 行に制限する。システムが、メッセージボックスに合

    わせて行を自動的に区切ることはないので、メッセージ文字列の適切な位置に行を区切るキャリッジリターンを含める必要がある。
    ダイアログボックスがある場合にメッセージボックスを作成するには、hWnd パラメータにダイアログボックスのハンドルを指定する。ただし、 

    hWnd パラメータには、ダイアログボックスのコントロールのような子ウィンドウを指定してはならない。