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_nProgressRangeMin ~ m_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 サンプル
要件
最低限必要なオペレーティング システム: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 を持つ複数の文字列があります。 このメソッドは、 nIDCommandControlsFirst と nCommandControlsLast の間の文字列テーブル内の有効なエントリごとにコマンド ボタン コントロールを追加します。 これらのコマンド ボタン コントロールの場合、文字列テーブル内の文字列はコントロールのキャプションであり、文字列 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::NavigateTo
フォーカスを別の 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またはnElevationButtonMaskにnButtonMaskにないボタンが含まれている場合、このメソッドは 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
が配置されます。 ユーザーが展開ボタンをクリックすると、 CTaskDialog
に strExpandedInformation が表示され ラベルが 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 クラスのこのインスタンスのオプションを手動で変更します。
このメソッドは、nRangeMin が nRangeMax 以下の場合、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 を持つ複数の文字列があります。 このメソッドは、 nIDCommandControlsFirst と nCommandControlsLast の間の文字列テーブル内の有効なエントリごとにコマンド ボタン コントロールを追加します。 これらのコマンド ボタン コントロールの場合、文字列テーブル内の文字列はコントロールのキャプションであり、文字列 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]CTaskDialog
のm_hWnd
構造体へのハンドル。
uNotification
[in]生成されたメッセージを指定する通知コード。
wParam
[in]メッセージの詳細。
lParam
[in]メッセージの詳細。
dwRefData
[in]コールバック メッセージが適用される CTaskDialog
オブジェクトへのポインター。
戻り値
特定の通知コードによって異なります。 詳細については、次の「解説」を参照してください。
解説
TaskDialogCallback
の既定の実装では、特定のメッセージを処理し、CTaskDialog クラスの適切な On メソッドを呼び出します。 たとえば、TDN_BUTTON_CLICKED メッセージに応答して、 TaskDialogCallback
は CTaskDialog::OnCommandControlClick を呼び出します。
wParam と lParam の値は、生成された特定のメッセージによって異なります。 これらの値のいずれかまたは両方を空にすることができます。 次の表に、サポートされている既定の通知と、 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 以外。 | 未使用。 |