SHMessageBoxCheckA 関数 (shlwapi.h)
[SHMessageBoxCheck は、[要件] セクションで指定されたオペレーティング システムで使用できます。 それ以降のバージョンでは、変更または使用できない可能性があります。
ユーザーがそれ以上の出現を抑制するオプションを提供するメッセージ ボックスを表示します。 ユーザーがメッセージ ボックスを抑制することを既に選択している場合、関数はダイアログ ボックスを表示せず、代わりに既定値を返します。
構文
int SHMessageBoxCheckA(
[in, optional] HWND hwnd,
[in] LPCSTR pszText,
[in] LPCSTR pszCaption,
UINT uType,
int iDefault,
[in] LPCSTR pszRegVal
);
パラメーター
[in, optional] hwnd
型: HWND
メッセージ ボックスの所有者へのウィンドウ ハンドル。 この値は NULL
[in] pszText
型: LPCTSTR
表示するメッセージを含む null で終わる文字列へのポインター。
[in] pszCaption
型: LPCTSTR
メッセージ ボックスのタイトルを含む null で終わる文字列へのポインター。 このパラメーターが NULL
uType
型: UINT
メッセージ ボックスの内容と動作を指定するフラグ。 この関数は、MessageBoxでサポートされるフラグのサブセットのみをサポートします。 以下に示されていないフラグを使用する場合、関数の動作は未定義です。
次のいずれかのフラグのみを設定して、表示するボタンを指定する必要があります。
MB_OKCANCEL
[OK] と [キャンセル]
MB_YESNO
[はい] と [ なし] ボタンを
MB_OK
[OK] ボタンを含むメッセージ ボックスを表示します。
オプションのアイコンを表示するには、次のいずれかのフラグのみを設定します。
MB_ICONHAND
停止記号アイコンを表示します。
MB_ICONQUESTION
疑問符アイコンを表示します。
MB_ICONEXCLAMATION
感嘆符アイコンを表示します。
MB_ICONINFORMATION
円に小文字の "i" が付いたアイコンを表示します。
iDefault
型: int
ユーザーがメッセージ ボックスを再び表示しないことを選択したときに関数が返す値。 ユーザーがメッセージ ボックスを非表示にすることを選択していない場合、メッセージ ボックスが表示され、関数は iDefault
[in] pszRegVal
型: LPCTSTR
このメッセージに関連付ける一意の文字列値を含む null で終わる文字列へのポインター。 Microsoft によって使用される値との競合を回避するには、この文字列に GUID を含める必要があります。 この文字列は、終端の null 文字を含め、REGSTR_MAX_VALUE_LENGTH文字の長さを超えてはなりません。
戻り値
型: int
ユーザーがメッセージ ボックスを非表示にすることを既に選択している場合、関数はすぐに iDefault
ユーザーが [OK]、[キャンセル] [キャンセル]、[ はい]] または [] ボタンをクリックすると、この関数は IDOK、IDCANCEL、IDYES、または IDNO をそれぞれ返します。
ユーザーがキャプションの [X] ボタンをクリックしてメッセージ ボックスを閉じると、関数は IDCANCEL を返します。 この場合、MB_OKCANCEL フラグが設定されていない場合でも、この値が返されます。
エラーが発生した場合、戻り値は通常 –1 です。 ただし、特定のメモリ不足の条件下では、関数は iDefault
備考
セキュリティ警告: 関数が -1 または iDefaultを返した場合は、危険なアクションを実行しないでください。 メッセージ ボックスを表示しようとしたときにエラーが発生した場合、
"このダイアログ ボックスを表示しない" と "この回答を記憶する" と混同しないでください。
SHMessageBoxCheck では、"この回答を記憶する" 機能は提供されません。 ユーザーがメッセージ ボックスを再度非表示にすることを選択した場合、関数はクリックしたボタンを保持しません。 代わりに、SHMessageBoxCheck
int iResult = SHMessageBoxCheck(hwnd,
TEXT("Do you want to exit without saving?"),
TEXT("Warning"),
MB_YESNO,
IDNO,
TEXT("{d9108ba3-9a61-4398-bfbc-b02102c77e8a}");
ユーザーが [] を選択した場合は、この ダイアログ ボックスを表示せず、[はい] ボタンをクリック 、SHMessageBoxCheck は IDYES を返します。 ただし、次にこのコードを実行すると、ユーザーが最初に [はい]
メッセージ ボックスに表示される既定のボタンは、iDefault 値と一致している必要があります。 MB_DEFBUTTON2 フラグがサポートされていないことは、MB_OKまたはMB_OKCANCEL フラグを指定した場合、iDefault
SHMessageBoxCheck
HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Explorer DontShowMeThisDialogAgain
手記
shlwapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SHMessageBoxCheck を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | shlwapi.h |
DLL | Shlwapi.dll (バージョン 5.0 以降) |