次の方法で共有


CTaskDialog クラス

メッセージ ボックスのような機能を持つだけでなく、ユーザーに対する追加情報も表示できる、ポップアップ ダイアログ ボックスです。 CTaskDialog には、ユーザーから情報を収集するための機能も用意されています。

構文

class CTaskDialog : public CObject

メンバー

コンストラクター

名前 説明
CTaskDialog::CTaskDialog CTaskDialog オブジェクトを構築します。

メソッド

Name 説明
CTaskDialog::AddCommandControl CTaskDialogにコマンド ボタン コントロールを追加します。
CTaskDialog::AddRadioButton CTaskDialogにラジオ ボタンを追加します。
CTaskDialog::ClickCommandControl コマンド ボタン コントロールまたは共通ボタンをプログラムでクリックします。
CTaskDialog::ClickRadioButton プログラムによってラジオ ボタンをクリックします。
CTaskDialog::D oModal CTaskDialog」を表示します。
CTaskDialog::GetCommonButtonCount 使用可能な一般的なボタンの数を取得します。
CTaskDialog::GetCommonButtonFlag 標準の Windows ボタンを、 CTaskDialog クラスに関連付けられている共通のボタンの種類に変換します。
CTaskDialog::GetCommonButtonId CTaskDialog クラスに関連付けられている一般的なボタンの種類のいずれかを標準の Windows ボタンに変換します。
CTaskDialog::GetOptions この CTaskDialogのオプション フラグを返します。
CTaskDialog::GetSelectedCommandControlID 選択したコマンド ボタン コントロールを返します。
CTaskDialog::GetSelectedRadioButtonID 選択したラジオ ボタンを返します。
CTaskDialog::GetVerificationCheckboxState 検証チェック ボックスの状態を取得します。
CTaskDialog::IsCommandControlEnabled コマンド ボタン コントロールと共通ボタンのどちらを有効にするかを指定します。
CTaskDialog::IsRadioButtonEnabled ラジオ ボタンが有効かどうかを判断します。
CTaskDialog::IsSupported アプリケーションを実行しているコンピューターが CTaskDialogをサポートしているかどうかを判断します。
CTaskDialog::LoadCommandControls 文字列テーブルのデータを使用して、コマンド ボタン コントロールを追加します。
CTaskDialog::LoadRadioButtons 文字列テーブルのデータを使用してラジオ ボタンを追加します。
CTaskDialog::NavigateTo フォーカスを別の CTaskDialogに転送します。
CTaskDialog::OnCommandControlClick フレームワークは、ユーザーがコマンド ボタン コントロールをクリックすると、このメソッドを呼び出します。
CTaskDialog::OnCreate フレームワークは、 CTaskDialogを作成した後、このメソッドを呼び出します。
CTaskDialog::OnDestroy フレームワークは、 CTaskDialogを破棄する直前に、このメソッドを呼び出します。
CTaskDialog::OnExpandButtonClick フレームワークは、ユーザーが展開ボタンをクリックすると、このメソッドを呼び出します。
CTaskDialog::OnHelp フレームワークは、ユーザーがヘルプを要求したときにこのメソッドを呼び出します。
CTaskDialog::OnHyperlinkClick フレームワークは、ユーザーがハイパーリンクをクリックしたときにこのメソッドを呼び出します。
CTaskDialog::OnInit フレームワークは、 CTaskDialog が初期化されるときにこのメソッドを呼び出します。
CTaskDialog::OnNavigatePage フレームワークは、ユーザーが CTaskDialog上のコントロールに関してフォーカスを移動するときに、このメソッドを呼び出します。
CTaskDialog::OnRadioButtonClick フレームワークは、ユーザーがラジオ ボタン コントロールを選択すると、このメソッドを呼び出します。
CTaskDialog::OnTimer フレームワークは、タイマーの有効期限が切れると、このメソッドを呼び出します。
CTaskDialog::OnVerificationCheckboxClick フレームワークは、ユーザーが検証チェック ボックスをクリックすると、このメソッドを呼び出します。
CTaskDialog::RemoveAllCommandControls CTaskDialogからすべてのコマンド コントロールを削除します。
CTaskDialog::RemoveAllRadioButtons CTaskDialogからすべてのラジオ ボタンを削除します。
CTaskDialog::SetCommandControlOptions CTaskDialogのコマンド ボタン コントロールを更新します。
CTaskDialog::SetCommonButtonOptions 一般的なボタンのサブセットを更新して有効にし、UAC 昇格を必要とします。
CTaskDialog::SetCommonButtons CTaskDialogに共通のボタンを追加します。
CTaskDialog::SetContent CTaskDialogの内容を更新します。
CTaskDialog::SetDefaultCommandControl 既定のコマンド ボタン コントロールを指定します。
CTaskDialog::SetDefaultRadioButton 既定のラジオ ボタンを指定します。
CTaskDialog::SetDialogWidth CTaskDialogの幅を調整します。
CTaskDialog::SetExpansionArea CTaskDialogの拡張領域を更新します。
CTaskDialog::SetFooterIcon CTaskDialogのフッター アイコンを更新します。
CTaskDialog::SetFooterText CTaskDialogのフッターのテキストを更新します。
CTaskDialog::SetMainIcon CTaskDialogのメイン アイコンを更新します。
CTaskDialog::SetMainInstruction CTaskDialogのメイン命令を更新します。
CTaskDialog::SetOptions CTaskDialogのオプションを構成します。
CTaskDialog::SetProgressBarMarquee CTaskDialogのマーキー バーを構成し、ダイアログ ボックスに追加します。
CTaskDialog::SetProgressBarPosition 進行状況バーの位置を調整します。
CTaskDialog::SetProgressBarRange 進行状況バーの範囲を調整します。
CTaskDialog::SetProgressBarState 進行状況バーの状態を設定し、 CTaskDialogに表示します。
CTaskDialog::SetRadioButtonOptions ラジオ ボタンを有効または無効にします。
CTaskDialog::SetVerificationCheckbox 検証チェック ボックスのチェック状態を設定します。
CTaskDialog::SetVerificationCheckboxText 検証チェック ボックスの右側にテキストを設定します。
CTaskDialog::SetWindowTitle CTaskDialogのタイトルを設定します。
CTaskDialog::ShowDialog CTaskDialogを作成して表示します。
CTaskDialog::TaskDialogCallback フレームワークは、さまざまな Windows メッセージに応答してこれを呼び出します。

データ メンバー

名前 説明
m_aButtons CTaskDialogのコマンド ボタン コントロールの配列。
m_aRadioButtons CTaskDialogのラジオ ボタン コントロールの配列。
m_bVerified TRUE は、検証チェック ボックスがオンになっていることを示します。 FALSE は、そうでないと示します。
m_footerIcon CTaskDialogのフッターのアイコン。
m_hWnd CTaskDialogのウィンドウへのハンドル。
m_mainIcon CTaskDialogのメイン アイコン。
m_nButtonDisabled 無効になっている一般的なボタンを示すマスク。
m_nButtonElevation UAC 昇格が必要な一般的なボタンを示すマスク。
m_nButtonId 選択したコマンド ボタン コントロールの ID。
m_nCommonButton CTaskDialogに表示される一般的なボタンを示すマスク。
m_nDefaultCommandControl CTaskDialogが表示されるときに選択されるコマンド ボタン コントロールの ID。
m_nDefaultRadioButton CTaskDialogが表示されるときに選択されるラジオ ボタン コントロールの ID。
m_nFlags CTaskDialogのオプションを示すマスク。
m_nProgressPos 進行状況バーの現在位置。 この値の有効値の範囲は m_nProgressRangeMinm_nProgressRangeMax です。
m_nProgressRangeMax 進行状況バーの最大値。
m_nProgressRangeMin 進行状況バーの最小値。
m_nProgressState 進行状況バーの状態。 詳細については、「 CTaskDialog::SetProgressBarStateを参照してください。
m_nRadioId 選択したラジオ ボタン コントロールの ID。
m_nWidth CTaskDialogの幅 (ピクセル単位)。
m_strCollapse 展開された情報が非表示の場合、 CTaskDialog が展開ボックスの右側に表示される文字列。
m_strContent CTaskDialogのコンテンツ文字列。
m_strExpand 展開された情報が表示されるときに、 CTaskDialog が展開ボックスの右側に表示される文字列。
m_strFooter CTaskDialogのフッター。
m_strInformation CTaskDialogの展開された情報。
m_strMainInstruction CTaskDialogの主な指示。
m_strTitle CTaskDialogのタイトル。
m_strVerification CTaskDialog検証チェック ボックスの右側に表示される文字列。

解説

CTaskDialog クラスは、標準の Windows メッセージ ボックスを置き換え、ユーザーから情報を収集する新しいコントロールなどの追加機能を備えています。 このクラスは、Visual Studio 2010 以降の MFC ライブラリにあります。 CTaskDialogは、Windows Vista 以降で使用できます。 以前のバージョンの Windows では、 CTaskDialog オブジェクトを表示できません。 CTaskDialog::IsSupportedを使用して、現在のユーザーがタスク ダイアログ ボックスを表示できるかどうかを実行時に判断します。 標準の Windows メッセージ ボックスは引き続きサポートされています。

CTaskDialogは、Unicode ライブラリを使用してアプリケーションをビルドする場合にのみ使用できます。

CTaskDialogには、2 つの異なるコンストラクターがあります。 1 つのコンストラクターを使用すると、2 つのコマンド ボタンと最大 6 つの通常のボタン コントロールを指定できます。 CTaskDialogを作成した後で、コマンド ボタンをさらに追加できます。 2 番目のコンストラクターはコマンド ボタンをサポートしていませんが、通常のボタン コントロールを無制限に追加できます。 コンストラクターの詳細については、「 CTaskDialog::CTaskDialog」を参照してください。

次の図は、一部のコントロールの場所を示すサンプル CTaskDialog を示しています。

CTaskDialog の例。
CTaskDialog サンプル

要件

最低限必要なオペレーティング システム:Windows Vista

Header: afxtaskdialog.h

CTaskDialog::AddCommandControl

CTaskDialogに新しいコマンド ボタン コントロールを追加します。

void AddCommandControl(
    int nCommandControlID,
    const CString& strCaption,
    BOOL bEnabled = TRUE,
    BOOL bRequiresElevation = FALSE);

パラメーター

nCommandControlID
[in]コマンド コントロールの識別番号。

strCaption
[in] CTaskDialog がユーザーに表示する文字列。 この文字列を使用して、コマンドの目的を説明します。

bEnabled
[in]新しいボタンが有効または無効になっているかどうかを示すブール型パラメーター。

bRequiresElevation
[in]コマンドに昇格が必要かどうかを示すブール型パラメーター。

解説

CTaskDialog Classは、コマンド ボタン コントロールの数に制限なく表示できます。 ただし、 CTaskDialog にコマンド ボタン コントロールが表示される場合は、最大 6 つのボタンを表示できます。 CTaskDialogにコマンド ボタン コントロールがない場合は、無制限の数のボタンを表示できます。

ユーザーがコマンド ボタン コントロールを選択すると、 CTaskDialog が閉じます。 アプリケーションで CTaskDialog::D oModal を使用してダイアログ ボックスを表示 DoModal 、選択したコマンド ボタン コントロールの nCommandControlID を返します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::AddRadioButton

CTaskDialogにラジオ ボタンを追加します。

void CTaskDialog::AddRadioButton(
    int nRadioButtonID,
    const CString& strCaption,
    BOOL bEnabled = TRUE);

パラメーター

nRadioButtonID
[in]ラジオ ボタンの識別番号。

strCaption
[in] CTaskDialog がラジオ ボタンの横に表示する文字列。

bEnabled
[in]ラジオ ボタンが有効かどうかを示すブール型パラメーター。

解説

CTaskDialog クラスのラジオ ボタンを使用すると、ユーザーから情報を収集できます。 関数 CTaskDialog::GetSelectedRadioButtonID を使用して、選択されているラジオ ボタンを決定します。

CTaskDialogでは、nRadioButtonID パラメーターがラジオ ボタンごとに一意である必要はありません。 ただし、ラジオ ボタンごとに個別の識別子を使用しないと、予期しない動作が発生する可能性があります。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::ClickCommandControl

コマンド ボタン コントロールまたは共通ボタンをプログラムでクリックします。

protected:
void ClickCommandControl(int nCommandControlID) const;

パラメーター

nCommandControlID
[in]クリックするコントロールのコマンド ID。

解説

このメソッドは、windows メッセージ TDM_CLICK_BUTTONを生成します。

CTaskDialog::ClickRadioButton

プログラムによってラジオ ボタンをクリックします。

protected:
void ClickRadioButton(int nRadioButtonID) const;

パラメーター

nRadioButtonID
[in]クリックするラジオ ボタンの ID。

解説

このメソッドは、windows メッセージ TDM_CLICK_RADIO_BUTTONを生成します。

CTaskDialog::CTaskDialog

CTaskDialog クラスのインスタンスを作成します。

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nCommonButtons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

CTaskDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

パラメーター

strContent
[in] CTaskDialogのコンテンツに使用する文字列。

strMainInstruction
[in] CTaskDialogの主な指示。

strTitle
[in] CTaskDialogのタイトル。

nCommonButtons
[in] CTaskDialogに追加する共通ボタンのマスク。

nTaskDialogOptions
[in] CTaskDialogに使用するオプションのセット。

strFooter
[in]フッターとして使用する文字列。

nIDCommandControlsFirst
[in]最初のコマンドの文字列 ID。

nIDCommandControlsLast
[in]最後のコマンドの文字列 ID。

解説

アプリケーションに CTaskDialog を追加するには、2 つの方法があります。 最初の方法は、いずれかのコンストラクターを使用して CTaskDialog を作成し、 CTaskDialog::D oModal を使用して表示することです。 2 つ目の方法は、静的関数 CTaskDialog::ShowDialog を使用することです。これにより、CTaskDialog オブジェクトを明示的に作成せずにCTaskDialogを表示できます。

2 番目のコンストラクターは、アプリケーションのリソース ファイルのデータを使用してコマンド ボタン コントロールを作成します。 リソース ファイル内の文字列テーブルには、関連付けられた文字列 ID を持つ複数の文字列があります。 このメソッドは、 nIDCommandControlsFirstnCommandControlsLast の間の文字列テーブル内の有効なエントリごとにコマンド ボタン コントロールを追加します。 これらのコマンド ボタン コントロールの場合、文字列テーブル内の文字列はコントロールのキャプションであり、文字列 ID はコントロールの ID です。

有効なオプションの一覧については、 CTaskDialog::SetOptions を参照してください。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::D oModal

CTaskDialogを表示し、モーダルにします。

INT_PTR DoModal (HWND hParent = ::GetActiveWindow());

パラメーター

hParent
[in] CTaskDialogの親ウィンドウ。

戻り値

ユーザーが行った選択に対応する整数。

解説

CTaskDialog のこのインスタンスを表示します。 その後、アプリケーションはユーザーがダイアログ ボックスを閉じるのを待機します。

CTaskDialogは、ユーザーが共通のボタン、コマンド リンク コントロールを選択したとき、またはCTaskDialogを閉じると閉じます。 戻り値は、ユーザーがダイアログ ボックスを閉じた方法を示す識別子です。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::GetCommonButtonCount

一般的なボタンの数を取得します。

int GetCommonButtonCount() const;

戻り値

使用可能な一般的なボタンの数。

解説

一般的なボタンは、 CTaskDialog::CTaskDialog に指定する既定のボタンです。 CTaskDialog クラスは、ダイアログ ボックスの下部にボタンを表示します。

ボタンの列挙リストは、CommCtrl.h で提供されています。

CTaskDialog::GetCommonButtonFlag

標準の Windows ボタンを、 CTaskDialog クラスに関連付けられている共通のボタンの種類に変換します。

int GetCommonButtonFlag(int nButtonId) const;

パラメーター

nButtonId
[in]標準の Windows ボタンの値。

戻り値

対応する CTaskDialog 共通ボタンの値。 対応する共通ボタンがない場合、このメソッドは 0 を返します。

CTaskDialog::GetCommonButtonId

CTaskDialog クラスに関連付けられている一般的なボタンの種類のいずれかを標準の Windows ボタンに変換します。

int GetCommonButtonId(int nFlag);

パラメーター

nFlag
[in] CTaskDialog クラスに関連付けられている一般的なボタンの種類。

戻り値

対応する標準の Windows ボタンの値。 対応する Windows ボタンがない場合、メソッドは 0 を返します。

CTaskDialog::GetOptions

この CTaskDialogのオプション フラグを返します。

int GetOptions() const;

戻り値

CTaskDialogのフラグ。

解説

CTaskDialog クラスで使用できるオプションの詳細については、「CTaskDialog::SetOptionsを参照してください。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::GetSelectedCommandControlID

選択したコマンド ボタン コントロールを返します。

int GetSelectedCommandControlID() const;

戻り値

現在選択されているコマンド ボタン コントロールの ID。

解説

このメソッドを使用して、ユーザーが選択したコマンド ボタンの ID を取得する必要はありません。 この ID は、 CTaskDialog::D oModal または CTaskDialog::ShowDialog によって返されます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::GetSelectedRadioButtonID

選択したラジオ ボタンを返します。

int GetSelectedRadioButtonID() const;

戻り値

選択したラジオ ボタンの ID。

解説

このメソッドは、ユーザーがダイアログ ボックスを閉じて、選択したラジオ ボタンを取得した後で使用できます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::GetVerificationCheckboxState

検証チェック ボックスの状態を取得します。

BOOL GetVerificationCheckboxState() const;

戻り値

チェック ボックスがオンの場合は TRUE、そうでない場合は FALSE。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::IsCommandControlEnabled

コマンド ボタン コントロールまたはボタンが有効かどうかを指定します。

BOOL IsCommandControlEnabled(int nCommandControlID) const;

パラメーター

nCommandControlID
[in]テストするコマンド ボタン コントロールまたはボタンの ID。

戻り値

コントロールが有効な場合は TRUE、有効でない場合は FALSE。

解説

このメソッドを使用して、コマンド ボタン コントロールと CTaskDialog クラス* の共通ボタンの両方の可用性を判断できます。

nCommandControlIDが共通のCTaskDialog ボタンまたはコマンド ボタン コントロールの有効な識別子でない場合、このメソッドは例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::IsRadioButtonEnabled

ラジオ ボタンが有効かどうかを判断します。

BOOL IsRadioButtonEnabled(int nRadioButtonID) const;

パラメーター

nRadioButtonID
[in]テストするラジオ ボタンの ID。

戻り値

ラジオ ボタンが有効な場合は TRUE、有効でない場合は FALSE。

解説

nRadioButtonID がラジオ ボタンの有効な識別子でない場合、このメソッドは例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::IsSupported

アプリケーションを実行しているコンピューターが CTaskDialogをサポートしているかどうかを判断します。

static BOOL IsSupported();

戻り値

コンピューターが CTaskDialogをサポートしている場合は TRUE。それ以外の場合は FALSE。

解説

この関数を使用して、アプリケーションを実行しているコンピューターが CTaskDialog クラスをサポートしているかどうかを実行時に確認します。 コンピューターが CTaskDialogをサポートしていない場合は、ユーザーに情報を伝達する別の方法を指定する必要があります。 CTaskDialog クラスをサポートしていないコンピューターでCTaskDialogを使用しようとすると、アプリケーションがクラッシュします。

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog::LoadCommandControls

文字列テーブルのデータを使用して、コマンド ボタン コントロールを追加します。

void LoadCommandControls(
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast);

パラメーター

nIDCommandControlsFirst
[in]最初のコマンドの文字列 ID。

nIDCommandControlsLast
[in]最後のコマンドの文字列 ID。

解説

このメソッドは、アプリケーションのリソース ファイルのデータを使用してコマンド ボタン コントロールを作成します。 リソース ファイル内の文字列テーブルには、関連付けられた文字列 ID を持つ複数の文字列があります。 このメソッドを使用して追加された新しいコマンド ボタン コントロールでは、コントロールのキャプションの文字列と、コントロールの ID の文字列 ID を使用します。 選択した文字列の範囲は、 nIDCommandControlsFirst および nCommandControlsLast によって提供されます。 範囲内に空のエントリがある場合、メソッドはそのエントリのコマンド ボタン コントロールを追加しません。

既定では、新しいコマンド ボタン コントロールは有効になっており、昇格は必要ありません。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::LoadRadioButtons

文字列テーブルのデータを使用して、ラジオ ボタン コントロールを追加します。

void LoadRadioButtons(
    int nIDRadioButtonsFirst,
    int nIDRadioButtonsLast);

パラメーター

nIDRadioButtonsFirst
[in]最初のラジオ ボタンの文字列 ID。

nIDRadioButtonsLast
[in]最後のラジオ ボタンの文字列 ID。

解説

このメソッドは、アプリケーションのリソース ファイルのデータを使用してラジオ ボタンを作成します。 リソース ファイル内の文字列テーブルには、関連付けられた文字列 ID を持つ複数の文字列があります。 このメソッドを使用して追加された新しいラジオ ボタンでは、ラジオ ボタンのキャプションの文字列と、ラジオ ボタンの ID の文字列 ID を使用します。 選択した文字列の範囲は、 nIDRadioButtonsFirst および nRadioButtonsLast によって提供されます。 範囲内に空のエントリがある場合、メソッドはそのエントリのラジオ ボタンを追加しません。

既定では、新しいラジオ ボタンが有効になっています。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

フォーカスを別の CTaskDialogに転送します。

protected:
void NavigateTo(CTaskDialog& oTaskDialog) const;

パラメーター

oTaskDialog
[in]フォーカスを受け取る CTaskDialog

解説

このメソッドは、oTaskDialog を表示するときに、現在のCTaskDialogを非表示にします。 oTaskDialog は、現在のCTaskDialogと同じ場所に表示されます。

CTaskDialog::OnCommandControlClick

フレームワークは、ユーザーがコマンド ボタン コントロールをクリックすると、このメソッドを呼び出します。

virtual HRESULT OnCommandControlClick(int nCommandControlID);

パラメーター

nCommandControlID
[in]ユーザーが選択したコマンド ボタン コントロールの ID。

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnCreate

フレームワークは、 CTaskDialogを作成した後、このメソッドを呼び出します。

virtual HRESULT OnCreate();

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnDestroy

フレームワークは、 CTaskDialogを破棄する直前に、このメソッドを呼び出します。

virtual HRESULT OnDestroy();

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnExpandButtonClick

フレームワークは、ユーザーが展開ボタンをクリックすると、このメソッドを呼び出します。

virtual HRESULT OnExpandButtonClicked(BOOL bExpanded);

パラメーター

bExpanded
[in]0 以外の値は、追加情報が表示されていることを示します。0 は、追加情報が非表示であることを示します。

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnHelp

フレームワークは、ユーザーがヘルプを要求したときにこのメソッドを呼び出します。

virtual HRESULT OnHelp();

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnHyperlinkClick

フレームワークは、ユーザーがハイパーリンクをクリックしたときにこのメソッドを呼び出します。

virtual HRESULT OnHyperlinkClick(const CString& strHref);

パラメーター

strHref
[in]ハイパーリンクを表す文字列。

戻り値

既定の実装では、S_OKが返されます。

解説

このメソッドは、S_OKを返す前に ShellExecute を呼び出します。

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnInit

フレームワークは、 CTaskDialog が初期化されるときにこのメソッドを呼び出します。

virtual HRESULT OnInit();

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnNavigatePage

フレームワークは、 CTaskDialog::NavigateTo メソッドに応答してこのメソッドを呼び出します。

virtual HRESULT OnNavigatePage();

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnRadioButtonClick

フレームワークは、ユーザーがラジオ ボタン コントロールを選択すると、このメソッドを呼び出します。

virtual HRESULT OnRadioButtonClick(int nRadioButtonID);

パラメーター

nRadioButtonID
[in]ユーザーがクリックしたラジオ ボタン コントロールの ID。

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnTimer

フレームワークは、タイマーの有効期限が切れると、このメソッドを呼び出します。

virtual HRESULT OnTimer(long lTime);

パラメーター

lTime
[in] CTaskDialog が作成されてから、またはタイマーがリセットされてからのミリ秒単位の時間。

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::OnVerificationCheckboxClick

フレームワークは、ユーザーが検証チェック ボックスをクリックすると、このメソッドを呼び出します。

virtual HRESULT OnVerificationCheckboxClick(BOOL bChecked);

パラメーター

bChecked
[in]TRUE は、検証チェック ボックスがオンになっていることを示します。FALSE は、そうでない場合を示します。

戻り値

既定の実装では、S_OKが返されます。

解説

カスタム動作を実装するには、派生クラスでこのメソッドをオーバーライドします。

CTaskDialog::RemoveAllCommandControls

CTaskDialogからすべてのコマンド ボタン コントロールを削除します。

void RemoveAllCommandControls();

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::RemoveAllRadioButtons

CTaskDialogからすべてのラジオ ボタンを削除します。

void RemoveAllRadioButtons();

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetCommandControlOptions

CTaskDialogのコマンド ボタン コントロールを更新します。

void SetCommandControlOptions(
    int nCommandControlID,
    BOOL bEnabled,
    BOOL bRequiresElevation = FALSE);

パラメーター

nCommandControlID
[in]更新するコマンド コントロールの ID。

bEnabled
[in]指定したコマンド ボタン コントロールが有効または無効になっているかどうかを示すブール型パラメーター。

bRequiresElevation
[in]指定したコマンド ボタン コントロールに昇格が必要かどうかを示すブール型パラメーター。

解説

このメソッドを使用して、コマンド ボタン コントロールを有効にするか、 CTaskDialog クラスに追加した後に昇格を必要とするかを変更します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::SetCommonButtonOptions

一般的なボタンのサブセットを更新して有効にし、UAC の昇格を要求します。

void SetCommonButtonOptions(
    int nDisabledButtonMask,
    int nElevationButtonMask = 0);

パラメーター

nDisabledButtonMask
[in]無効にする一般的なボタンのマスク。

nElevationButtonMask
[in]昇格を必要とする一般的なボタンのマスク。

解説

コンストラクター CTaskDialog::CTaskDialog およびメソッド CTaskDialog::SetCommonButtons を使用して、CTaskDialog クラスのインスタンスで使用できる共通ボタンを設定できます。 CTaskDialog::SetCommonButtonOptions では、新しい共通ボタンの追加はサポートされていません。

このメソッドを使用して、この CTaskDialogで使用できない共通ボタンを無効または昇格させる場合、このメソッドは ENSURE マクロを使用して例外をスローします。

このメソッドは、 CTaskDialog で使用できるが、 nDisabledButtonMask に含まれていないボタンを、以前に無効にした場合でも有効にします。 このメソッドは、同様の方法で昇格を処理します。共通ボタンが使用できるが、 nElevationButtonMaskに含まれていない場合は、一般的なボタンが昇格を必要としないことを記録します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog::SetCommonButtons

CTaskDialogに共通のボタンを追加します。

void SetCommonButtons(
    int nButtonMask,
    int nDisabledButtonMask = 0,
    int nElevationButtonMask = 0);

パラメーター

nButtonMask
[in] CTaskDialogに追加するボタンのマスク。

nDisabledButtonMask
[in]無効にするボタンのマスク。

nElevationButtonMask
[in]昇格を必要とするボタンのマスク。

解説

CTaskDialog クラスのこのインスタンスの表示ウィンドウが作成された後、このメソッドを呼び出すことはできません。 その場合、このメソッドは例外をスローします。

nButtonMask によって示されるボタンは以前にCTaskDialogに追加された一般的なボタンをオーバーライドします。 nButtonMask に示されているボタンのみを使用できます。

nDisabledButtonMaskまたはnElevationButtonMasknButtonMaskにないボタンが含まれている場合、このメソッドは ENSURE マクロを使用して例外をスローします。

既定では、すべての一般的なボタンが有効になっており、昇格は必要ありません。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title);

// Create a button mask.
int buttons = TDCBF_OK_BUTTON | TDCBF_CANCEL_BUTTON;
buttons |= TDCBF_RETRY_BUTTON | TDCBF_CLOSE_BUTTON;

taskDialog.SetCommonButtons(buttons);

// Disable the close button and make the retry button require
// elevation.
taskDialog.SetCommonButtonOptions(TDCBF_CLOSE_BUTTON,
                                  TDCBF_RETRY_BUTTON);

taskDialog.DoModal();

CTaskDialog::SetContent

CTaskDialogの内容を更新します。

void SetContent(const CString& strContent);

パラメーター

strContent
[in]ユーザーに表示する文字列。

解説

CTaskDialog クラスの内容は、ダイアログ ボックスのメイン セクションでユーザーに表示されるテキストです。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetDefaultCommandControl

既定のコマンド ボタン コントロールを指定します。

void SetDefaultCommandControl(int nCommandControlID);

パラメーター

nCommandControlID
[in]既定のコマンド ボタン コントロールの ID。

解説

既定のコマンド ボタン コントロールは、 CTaskDialog が最初にユーザーに表示されるときに選択されるコントロールです。

このメソッドは、 nCommandControlID で指定されたコマンド ボタン コントロールが見つからない場合に例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title.
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddCommandControl(201, L"First command button control");
taskDialog.AddCommandControl(202, L"Second command button control");
taskDialog.AddCommandControl(203, L"Third command button control");

// Show the CTaskDialog and remember how the user closed it.
int selection = taskDialog.DoModal();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // command button control.
   break;

case 202:
   // TODO: Place processing here for the second
   // command button control.
   break;

case 203:
   // TODO: Place processing here for the third
   // command button control.
   break;

default:
   break;
}

// Remove all the command controls so that we can use the same task
// dialog with new command button controls.
taskDialog.RemoveAllCommandControls();

taskDialog.AddCommandControl(301,
                             L"New first command button control");
taskDialog.AddCommandControl(302,
                             L"New second command button control should require elevation",
                             TRUE, TRUE);
taskDialog.AddCommandControl(303,
                             L"New third command button control should be disabled");

// Change the default command button control
taskDialog.SetDefaultCommandControl(302);

// Make sure the third option is disabled.
if (taskDialog.IsCommandControlEnabled(303))
{
   taskDialog.SetCommandControlOptions(303, FALSE);
}

taskDialog.DoModal();

switch (taskDialog.GetSelectedCommandControlID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the command button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllCommandControls();
taskDialog.LoadCommandControls(1001, 1005);

CTaskDialog::SetDefaultRadioButton

既定のラジオ ボタンを指定します。

void SetDefaultRadioButton(int nRadioButtonID);

パラメーター

nRadioButtonID
[in]既定値となるラジオ ボタンの ID。

解説

既定のラジオ ボタンは、 CTaskDialog がユーザーに最初に表示されるときに選択されるボタンです。

このメソッドは、 nRadioButtonID で指定されたラジオ ボタンが見つからない場合に例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetDialogWidth

CTaskDialogの幅を調整します。

void SetDialogWidth(int nWidth = 0);

パラメーター

nWidth
[in]ダイアログ ボックスの幅 (ピクセル単位)。

解説

パラメーター nWidth は 0 以上である必要があります。 それ以外の場合、このメソッドは例外をスローします。

nWidth が 0 に設定されている場合、このメソッドはダイアログ ボックスを既定のサイズに設定します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetExpansionArea

CTaskDialogの拡張領域を更新します。

void SetExpansionArea(
    const CString& strExpandedInformation,
    const CString& strCollapsedLabel = _T(""),
    const CString& strExpandedLabel = _T(""));

パラメーター

strExpandedInformation
[in]ユーザーが展開ボタンをクリックしたときに、ダイアログ ボックスの本文に CTaskDialog が表示される文字列。

strCollapsedLabel
[in]展開領域が折りたたまれているときに、 CTaskDialog が展開ボタンの横に表示される文字列。

strExpandedLabel
[in]展開領域が表示されるときに、 CTaskDialog が展開ボタンの横に表示する文字列。

解説

CTaskDialog クラスの拡張領域を使用すると、ユーザーに追加情報を提供できます。 拡張領域は、タイトルとコンテンツ文字列のすぐ下にある CTaskDialogのメイン部分にあります。

CTaskDialogが最初に表示されると、展開された情報は表示されず、展開ボタンの横にstrCollapsedLabelが配置されます。 ユーザーが展開ボタンをクリックすると、 CTaskDialogstrExpandedInformation が表示され ラベルが strExpandedLabel に変更されます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetFooterIcon

CTaskDialogのフッター アイコンを更新します。

void SetFooterIcon(HICON hFooterIcon);
void SetFooterIcon(LPCWSTR lpszFooterIcon);

パラメーター

hFooterIcon
[in] CTaskDialogの新しいアイコン。

lpszFooterIcon
[in] CTaskDialogの新しいアイコン。

解説

フッター アイコンは、 CTaskDialog クラスの下部に表示されます。 関連付けられたフッター テキストを含めることができます。 フッター テキストは、 CTaskDialog::SetFooterText で変更できます。

このメソッドは、CTaskDialogが表示されている場合、または入力パラメーターが NULL の場合、ENSURE マクロで例外をスローします。

CTaskDialogは、フッター アイコンとしてHICONまたはLPCWSTRのみを受け入れます。 これは、コンストラクターまたは CTaskDialog::SetOptions でオプション TDF_USE_HICON_FOOTERを設定することによって構成されます。 既定では、 CTaskDialog はフッター アイコンの入力の種類として LPCWSTR を使用するように構成されています。 このメソッドは、不適切な種類を使用してアイコンを設定しようとすると、例外を生成します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetFooterText

CTaskDialogのフッターのテキストを更新します。

void SetFooterText(const CString& strFooterText);

パラメーター

strFooterText
[in]フッターの新しいテキスト。

解説

フッター アイコンは、 CTaskDialogの下部にあるフッター テキストの横に表示されます。 フッター アイコンは、 CTaskDialog::SetFooterIcon で変更できます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetMainIcon

CTaskDialogのメイン アイコンを更新します。

void SetMainIcon(HICON hMainIcon);
void SetMainIcon(LPCWSTR lpszMainIcon);

パラメーター

hMainIcon
[in]新しいアイコン。

lpszMainIcon
[in]新しいアイコン。

解説

このメソッドは、CTaskDialogが表示されている場合、または入力パラメーターが NULL の場合、ENSURE マクロで例外をスローします。

CTaskDialogは、メイン アイコンとしてHICONまたはLPCWSTRのみを受け入れます。 これを構成するには、コンストラクターまたは CTaskDialog::SetOptions メソッドで TDF_USE_HICON_MAIN オプションを設定します。 既定では、 CTaskDialog はメイン アイコンの入力の種類として LPCWSTR を使用するように構成されています。 このメソッドは、不適切な種類を使用してアイコンを設定しようとすると、例外を生成します。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetMainInstruction

CTaskDialogのメイン命令を更新します。

void SetMainInstruction(const CString& strInstructions);

パラメーター

strInstructions
[in]新しいメイン命令。

解説

CTaskDialog クラスの主な指示は、大きな太字フォントでユーザーに表示されるテキストです。 これは、タイトル バーの下のダイアログ ボックスにあります。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetOptions

CTaskDialogのオプションを構成します。

void SetOptions(int nOptionFlag);

パラメーター

nOptionFlag
[in] CTaskDialogに使用するフラグのセット。

解説

このメソッドは、 CTaskDialogの現在のオプションをすべてクリアします。 現在のオプションを保持するには、最初に CTaskDialog::GetOptions を使用して取得し、設定するオプションと組み合わせる必要があります。

次の表に、有効なすべてのオプションを示します。

名前 説明
TDF_ENABLE_HYPERLINKS CTaskDialog内のハイパーリンクを有効にします。
TDF_USE_HICON_MAIN メイン アイコンにHICONを使用するようにCTaskDialogを構成します。 代わりに、 LPCWSTRを使用します。
TDF_USE_HICON_FOOTER フッター アイコンにHICONを使用するようにCTaskDialogを構成します。 代わりに、 LPCWSTRを使用します。
TDF_ALLOW_DIALOG_CANCELLATION Cancel ボタンが有効になっていない場合でも、ユーザーがキーボードを使用するか、ダイアログ ボックスの右上隅にあるアイコンを使用してCTaskDialogを閉じできるようにします。 このフラグが設定されておらず、 Cancel ボタンが有効になっていない場合、ユーザーは Alt + F4 キー、エスケープ キー、またはタイトル バーの閉じるボタンを使用してダイアログ ボックスを閉じることができません。
TDF_USE_COMMAND_LINKS コマンド ボタン コントロールを使用するように CTaskDialog を構成します。
TDF_USE_COMMAND_LINKS_NO_ICON コントロールの横にアイコンを表示せずにコマンド ボタン コントロールを使用するように CTaskDialog を構成します。 TDF_USE_COMMAND_LINKSはTDF_USE_COMMAND_LINKS_NO_ICONをオーバーライドします。
TDF_EXPAND_FOOTER_AREA 拡張領域が現在展開されていることを示します。
TDF_EXPANDED_BY_DEFAULT 展開領域が既定で展開されているかどうかを判断します。
TDF_VERIFICATION_FLAG_CHECKED 検証チェック ボックスが現在選択されていることを示します。
TDF_SHOW_PROGRESS_BAR 進行状況バーを表示するように CTaskDialog を構成します。
TDF_SHOW_MARQUEE_PROGRESS_BAR マーキープログレス バーとして進行状況バーを構成します。 このオプションを有効にする場合は、期待される動作をTDF_SHOW_PROGRESS_BAR設定する必要があります。
TDF_CALLBACK_TIMER CTaskDialogコールバック間隔が約 200 ミリ秒に設定されていることを示します。
TDF_POSITION_RELATIVE_TO_WINDOW 親ウィンドウを基準にして中央揃えになるように CTaskDialog を構成します。 このフラグが有効になっていない場合、 CTaskDialog はモニターを基準に中央揃えになります。
TDF_RTL_LAYOUT 右から左への読み取りレイアウトの CTaskDialog を構成します。
TDF_NO_DEFAULT_RADIO_BUTTON CTaskDialogが表示されたときにラジオ ボタンが選択されていないことを示します。
TDF_CAN_BE_MINIMIZED ユーザーが CTaskDialogを最小限に抑えられるようにします。 このオプションをサポートするために、 CTaskDialog をモーダルにすることはできません。 MFC ではモードレス CTaskDialogがサポートされていないため、MFC ではこのオプションはサポートされません。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::SetProgressBarMarquee

CTaskDialogのマーキー バーを構成し、ダイアログ ボックスに追加します。

void SetProgressBarMarquee(
    BOOL bEnabled = TRUE,
    int nMarqueeSpeed = 0);

パラメーター

bEnabled
[in]マーキー バーを有効にする場合は TRUE。マーキー バーを無効にし、 CTaskDialogから削除する場合は FALSE。

nMarqueeSpeed
[in]マーキー バーの速度を示す整数。

解説

CTaskDialog クラスのメイン テキストの下にマーキー バーが表示されます。

nMarqueeSpeedを使用してマーキー バーの速度を設定します。値を大きくすると、速度が遅いことを示します。 nMarqueeSpeed の値を 0 にすると、Windows の既定の速度でマーキー バーが移動します。

このメソッドは、nMarqueeSpeed が 0 未満の場合、ENSURE マクロで例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarPosition

進行状況バーの位置を調整します。

void SetProgressBarPosition(int nProgressPos);

パラメーター

nProgressPos
[in]進行状況バーの位置。

解説

nProgressPosがプログレス バーの範囲内にない場合、このメソッドは ENSURE マクロで例外をスローします。 進行状況バーの範囲は、 CTaskDialog::SetProgressBarRange で変更できます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarRange

進行状況バーの範囲を調整します。

void SetProgressBarRange(
    int nRangeMin,
    int nRangeMax);

パラメーター

nRangeMin
[in]進行状況バーの下限。

nRangeMax
[in]進行状況バーの上限。

解説

進行状況バーの位置は、 nRangeMin および nRangeMax に対する相対位置です。 たとえば、 nRangeMin が 50 で、 nRangeMax が 100 の場合、進行状況バーの中間に 75 の位置があります。 CTaskDialog::SetProgressBarPosition を使用して、進行状況バーの位置を設定します。

進行状況バーを表示するには、オプション TDF_SHOW_PROGRESS_BARを有効にし、TDF_SHOW_MARQUEE_PROGRESS_BARを有効にすることはできません。 このメソッドは、TDF_SHOW_PROGRESS_BARを自動的に設定し、TDF_SHOW_MARQUEE_PROGRESS_BARをクリアします。 CTaskDialog::SetOptions を使用して、CTaskDialog クラスのこのインスタンスのオプションを手動で変更します。

このメソッドは、nRangeMinnRangeMax 以下の場合、ENSURE マクロで例外をスローします。 このメソッドは、 CTaskDialog が既に表示されていて、マーキー進行状況バーがある場合にも例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetProgressBarState

進行状況バーの状態を設定し、 CTaskDialogに表示します。

void SetProgressBarState(int nState = PBST_NORMAL);

パラメーター

nState
[in]進行状況バーの状態。 使用可能な値については、「解説」セクションを参照してください。

解説

このメソッドは、CTaskDialogが既に表示され、マーキーの進行状況バーがある場合、ENSURE マクロで例外をスローします。

次の表に、 nState に使用できる値を示します。 いずれの場合も、進行状況バーは、指定された停止位置に達するまで通常の色で塗りつぶされます。 その時点で、状態に基づいて色が変更されます。

名前 説明
PBST_NORMAL 進行状況バーが塗りつぶされた後、 CTaskDialog はバーの色を変更しません。 既定では、通常の色は緑です。
PBST_ERROR 進行状況バーが塗りつぶされると、 CTaskDialog はバーの色をエラーの色に変更します。 既定では、これは赤です。
PBST_PAUSED 進行状況バーが塗りつぶされると、 CTaskDialog はバーの色を一時停止した色に変更します。 既定では、これは黄色です。

CTaskDialog::SetProgressBarPosition で進行状況バーが停止する場所を設定できます。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add a marquee progress bar.
taskDialog.SetProgressBarMarquee();

taskDialog.DoModal();

// Remove the marquee bar and replace it with a standard progress bar
taskDialog.SetProgressBarMarquee(0);
taskDialog.SetProgressBarRange(0, 100);
taskDialog.SetProgressBarPosition(75);
taskDialog.SetProgressBarState();

taskDialog.DoModal();

CTaskDialog::SetRadioButtonOptions

ラジオ ボタンを有効または無効にします。

void SetRadioButtonOptions(
    int nRadioButtonID,
    BOOL bEnabled);

パラメーター

nRadioButtonID
[in]ラジオ ボタン コントロールの ID。

bEnabled
[in]ラジオ ボタンを有効にする場合は TRUE。オプション ボタンを無効にする場合は FALSE。

解説

nRadioButtonID がラジオ ボタンの有効な ID でない場合、このメソッドは ENSURE マクロで例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

taskDialog.AddRadioButton(201, L"First option");
taskDialog.AddRadioButton(202, L"Second option");
taskDialog.AddRadioButton(203, L"Third option");

taskDialog.DoModal();
int selection = taskDialog.GetSelectedRadioButtonID();

switch (selection)
{
case 201:
   // TODO: Place processing here for the first
   // radio button.
   break;

case 202:
   // TODO: Place processing here for the second
   // radio button.
   break;

case 203:
   // TODO: Place processing here for the third
   // radio button.
   break;

default:
   break;
}

// Remove all the radio buttons so that we can use the same task
// dialog with new radio buttons.
taskDialog.RemoveAllRadioButtons();

taskDialog.AddRadioButton(301, L"New first option");
taskDialog.AddRadioButton(302, L"New second option");
taskDialog.AddRadioButton(303,
                          L"New third option should be disabled");

// Change the default radio button to the second option
taskDialog.SetDefaultRadioButton(302);

// Make sure the third option is disabled.
if (taskDialog.IsRadioButtonEnabled(303))
{
   taskDialog.SetRadioButtonOptions(303, FALSE);
}

taskDialog.DoModal();
selection = taskDialog.GetSelectedRadioButtonID();

switch (taskDialog.GetSelectedRadioButtonID())
{
case 301:
   // TODO: Place processing here for new first
   // command button control.
   break;

case 302:
   // TODO: Place processing here for new second
   // command button control.
   break;

case 303:
   // TODO: Place processing here for the new third
   // command button control.
   break;

default:
   break;
}

// Remove all the radio button controls and add new ones from
// the string table resource.
taskDialog.RemoveAllRadioButtons();
taskDialog.LoadRadioButtons(1001, 1005);

CTaskDialog::SetVerificationCheckbox

検証チェック ボックスのチェック状態を設定します。

void SetVerificationCheckbox(BOOL bChecked);

パラメーター

bChecked
[in] CTaskDialog が表示されたときに検証チェック ボックスをオンにする場合は TRUE。 CTaskDialog が表示されたときに検証チェック ボックスをオフにする場合は FALSE。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::SetVerificationCheckboxText

確認チェック ボックスの右側に表示されるテキストを設定します。

void SetVerificationCheckboxText(CString& strVerificationText);

パラメーター

strVerificationText
[in]このメソッドが検証チェック ボックスの横に表示するテキスト。

解説

CTaskDialog クラスのこのインスタンスが既に表示されている場合、このメソッドは ENSURE マクロで例外をスローします。

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Add the verification checkbox and set the default state.
taskDialog.SetVerificationCheckboxText(L"Remember your selection.");
taskDialog.SetVerificationCheckbox(false);

taskDialog.DoModal();

if (taskDialog.GetVerificationCheckboxState())
{
   // TODO: Write settings of the task dialog to the registry
}

CTaskDialog::SetWindowTitle

CTaskDialogのタイトルを設定します。

void SetWindowTitle(CString& strWindowTitle);

パラメーター

strWindowTitle
[in] CTaskDialogの新しいタイトル。

解説

// TODO: Replace the strings below with the appropriate message,
// main instruction, and dialog title
CString message("This is an important message to the user.");
CString mainInstruction("Important!\nPlease read!");
CString title("Alert Dialog");

CTaskDialog taskDialog(message, mainInstruction, title,
                       TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);

// Setting new information to be able to reuse the dialog resource
taskDialog.SetWindowTitle(L"New title for the task dialog");
taskDialog.SetContent(L"New message to show the user.");
taskDialog.SetMainInstruction(L"Even more important!");
taskDialog.SetMainIcon(TD_ERROR_ICON);
taskDialog.SetDialogWidth(300);

// Add a footer
taskDialog.SetFooterText(L"Footer information for the dialog.");
taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

// Add expansion information
taskDialog.SetExpansionArea(L"Additional information\non two lines.",
                            L"Click here for more information.",
                            L"Click here to hide the extra information.");

// Change the options to show the expanded information by default.
// It is necessary to retrieve the current options first.
int options = taskDialog.GetOptions();
options |= TDF_EXPANDED_BY_DEFAULT;
taskDialog.SetOptions(options);

taskDialog.DoModal();

CTaskDialog::ShowDialog

CTaskDialogを作成して表示します。

static INT_PTR ShowDialog(
    const CString& strContent,
    const CString& strMainInstruction,
    const CString& strTitle,
    int nIDCommandControlsFirst,
    int nIDCommandControlsLast,
    int nCommonButtons = TDCBF_YES_BUTTON | TDCBF_NO_BUTTON,
    int nTaskDialogOptions = TDF_ENABLE_HYPERLINKS | TDF_USE_COMMAND_LINKS,
    const CString& strFooter = _T(""));

パラメーター

strContent
[in] CTaskDialogのコンテンツに使用する文字列。

strMainInstruction
[in] CTaskDialogの主な指示。

strTitle
[in] CTaskDialogのタイトル。

nIDCommandControlsFirst
[in]最初のコマンドの文字列 ID。

nIDCommandControlsLast
[in]最後のコマンドの文字列 ID。

nCommonButtons
[in] CTaskDialogに追加するボタンのマスク。

nTaskDialogOptions
[in] CTaskDialogに使用するオプションのセット。

strFooter
[in]フッターとして使用する文字列。

戻り値

ユーザーが行った選択に対応する整数。

解説

この静的メソッドを使用すると、コードでCTaskDialog オブジェクトを明示的に作成することなく、CTaskDialog クラスのインスタンスを作成できます。 CTaskDialog オブジェクトがないため、このメソッドを使用してユーザーにCTaskDialogを表示する場合は、CTaskDialogの他のメソッドを呼び出すことはできません。

このメソッドは、アプリケーションのリソース ファイルのデータを使用してコマンド ボタン コントロールを作成します。 リソース ファイル内の文字列テーブルには、関連付けられた文字列 ID を持つ複数の文字列があります。 このメソッドは、 nIDCommandControlsFirstnCommandControlsLast の間の文字列テーブル内の有効なエントリごとにコマンド ボタン コントロールを追加します。 これらのコマンド ボタン コントロールの場合、文字列テーブル内の文字列はコントロールのキャプションであり、文字列 ID はコントロールの ID です。

有効なオプションの一覧については、 CTaskDialog::SetOptions を参照してください。

CTaskDialogは、ユーザーが共通のボタン、コマンド リンク コントロールを選択したとき、またはCTaskDialogを閉じると閉じます。 戻り値は、ユーザーがダイアログ ボックスを閉じた方法を示す識別子です。

// TODO: Replace the string below with the actual message to the user
CString message("Important information to the user");
// TODO: Replace the string below with the title of this project
CString title("Project Title");

CString emptyString;

if (CTaskDialog::IsSupported())
{
   CTaskDialog::ShowDialog(message, emptyString, title, 0, 0,
                           TDCBF_OK_BUTTON);
}
else
{
   AfxMessageBox(message);
}

CTaskDialog::TaskDialogCallback

フレームワークは、さまざまな Windows メッセージに応答してこのメソッドを呼び出します。

friend:
HRESULT TaskDialogCallback(
    HWND hWnd,
    UINT uNotification,
    WPARAM wParam,
    LPARAM lParam,
    LONG_PTR dwRefData);

パラメーター

hwnd
[in]CTaskDialogm_hWnd構造体へのハンドル。

uNotification
[in]生成されたメッセージを指定する通知コード。

wParam
[in]メッセージの詳細。

lParam
[in]メッセージの詳細。

dwRefData
[in]コールバック メッセージが適用される CTaskDialog オブジェクトへのポインター。

戻り値

特定の通知コードによって異なります。 詳細については、次の「解説」を参照してください。

解説

TaskDialogCallbackの既定の実装では、特定のメッセージを処理し、CTaskDialog クラスの適切な On メソッドを呼び出します。 たとえば、TDN_BUTTON_CLICKED メッセージに応答して、 TaskDialogCallbackCTaskDialog::OnCommandControlClick を呼び出します。

wParamlParam の値は、生成された特定のメッセージによって異なります。 これらの値のいずれかまたは両方を空にすることができます。 次の表に、サポートされている既定の通知と、 wParam および lParam の値を示します。 派生クラスでこのメソッドをオーバーライドする場合は、次の表の各メッセージのコールバック コードを実装する必要があります。

通知メッセージ wParam Value lParam Value
TDN_CREATED 使用しません。 使用しません。
TDN_NAVIGATED 使用しません。 使用しません。
TDN_BUTTON_CLICKED コマンド ボタンコントロール ID。 未使用。
TDN_HYPERLINK_CLICKED 未使用。 リンクを含む LPCWSTR 構造体。
TDN_TIMER CTaskDialogが作成されてから、またはタイマーがリセットされてからのミリ秒単位の時間。 未使用。
TDN_DESTROYED 使用しません。 使用しません。
TDN_RADIO_BUTTON_CLICKED ラジオ ボタン ID。 未使用。
TDN_DIALOG_CONSTRUCTED 使用しません。 使用しません。
TDN_VERIFICATION_CLICKED チェック ボックスがオンの場合は 1、そうでない場合は 0。 未使用。
TDN_HELP 使用しません。 使用しません。
TDN_EXPANDO_BUTTON_CLICKED 拡張領域が折りたたまれている場合は 0。展開テキストが表示される場合は 0 以外。 未使用。

関連項目

クラス
CObject クラス
階層図
チュートリアル: アプリケーションへの CTaskDialog の追加