Share via


TaskDialogIndirect 関数 (commctrl.h)

TaskDialogIndirect 関数は、タスク ダイアログを作成、表示、および操作します。 タスク ダイアログには、アプリケーション定義のアイコン、メッセージ、タイトル、検証チェックボックス、コマンド リンク、プッシュ ボタン、ラジオ ボタンが含まれています。 この関数は、通知メッセージを受信するコールバック関数を登録できます。

構文

HRESULT TaskDialogIndirect(
  [in]            const TASKDIALOGCONFIG *pTaskConfig,
  [out, optional] int                    *pnButton,
  [out, optional] int                    *pnRadioButton,
  [out, optional] BOOL                   *pfVerificationFlagChecked
);

パラメーター

[in] pTaskConfig

型: const TASKDIALOGCONFIG*

タスク ダイアログの表示に使用される情報を含む TASKDIALOGCONFIG 構造体へのポインター。

[out, optional] pnButton

型: int*

次のいずれかを受け取る変数のアドレス:

  • pTaskConfig パラメーターの pButtons メンバーで指定されたボタン ID の 1 つ
  • 次のいずれかの値を指定します。
説明
0 関数呼び出しに失敗しました。 詳細については、戻り値を参照してください。
IDCANCEL [キャンセル ] ボタンが選択され、Alt キーを押しながら F4 キーが押された、Esc キーが押された、またはユーザーが ウィンドウを閉じる ボタンをクリックしました。
IDNO ボタンが 選択されていません。
IDOK [OK] ボタンが選択されました。
IDRETRY [再試行 ] ボタンが選択されました。
IDYES [はい ] ボタンが選択されました。
 

このパラメーターが NULL の場合、値は返されません。

[out, optional] pnRadioButton

型: int*

pTaskConfig パラメーターの pRadioButtons メンバーで指定されたボタン ID のいずれかを受け取る変数のアドレス。 このパラメーターが NULL の場合、値は返されません。

[out, optional] pfVerificationFlagChecked

種類: BOOL*

次のいずれかの値を受け取る変数のアドレス。

説明
TRUE ダイアログが閉じられたときに、検証チェック ボックスがオンになりました。
FALSE ダイアログが閉じられたときに、検証チェック ボックスがオンになりませんでした。
 

このパラメーターが NULL の場合、検証チェック ボックスは無効になります。

戻り値

型: HRESULT

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
操作は正常に完了しました。
E_OUTOFMEMORY
操作を完了するためのメモリが不足しています。
E_INVALIDARG
1 つ以上の引数が無効です。
E_FAIL
操作が失敗しました。

注釈

タスク ダイアログ ボックスを使用してシステムのメモリが不足していることを示す場合、リソースの読み込みが失敗する可能性があるため、 TASKDIALOGCONFIG 構造体のさまざまな文字列およびアイコン メンバーが指す文字列をリソース ファイルから取得しないでください。

ダイアログ ボックスが存在する間にタスク ダイアログを作成する場合は、ダイアログ ボックスのハンドルを hWndParent パラメーターとして使用します。 hWndParent パラメーターは、ダイアログ ボックスのコントロールなどの子ウィンドウを識別しないようにする必要があります。

この関数を呼び出すときは、親ウィンドウを非表示にしたり無効にしたりしないでください。


int nButtonPressed                  = 0;
TASKDIALOGCONFIG config             = {0};
const TASKDIALOG_BUTTON buttons[]   = { 
                                        { IDOK, L"Change password" }
                                      };
config.cbSize                       = sizeof(config);
config.hInstance                    = hInst;
config.dwCommonButtons              = TDCBF_CANCEL_BUTTON;
config.pszMainIcon                  = TD_WARNING_ICON;
config.pszMainInstruction           = L"Change Password";
config.pszContent                   = L"Remember your changed password.";
config.pButtons                     = buttons;
config.cButtons                     = ARRAYSIZE(buttons);

TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL);
switch (nButtonPressed)
{
    case IDOK:
        break; // the user pressed button 0 (change password).
    case IDCANCEL:
        break; // user canceled the dialog
    default:
        break; // should never happen
}

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー commctrl.h (Commctrl.h を含む)
Library Comctl32.lib
[DLL] Comctl32.dll (バージョン 6)

関連項目

ダイアログ ボックス