次の方法で共有


CTaskDialog::LoadCommandControls

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

void LoadCommandControls(
   int nIDCommandControlsFirst,
   int nIDCommandControlsLast
);

パラメーター

  • [入力] nIDCommandControlsFirst
    最初のコマンドの文字列 ID。

  • [入力] nIDCommandControlsLast
    最後のコマンドの文字列 ID。

解説

このメソッドは、アプリケーションのリソース ファイルからのデータを使用して、コマンド ボタン コントロールを作成します。 リソース ファイル内のストリング テーブルには、いくつかの文字列が含まれ、それぞれ文字列 ID が関連付けられています。 このメソッドを使用して追加された新しいコマンド ボタン コントロールでは、各文字列がコントロールのキャプションとして使用され、文字列 ID がそのコントロールの ID として使用されます。 選択する文字列の範囲は、nIDCommandControlsFirst から nCommandControlsLast まで (この 2 つも含む) として設定されます。 範囲内に空のエントリがある場合、メソッドではそのエントリに対してコマンド ボタン コントロールを追加しません。

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

使用例

// 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);

必要条件

**ヘッダー:**afxtaskdialog.h

参照

参照

CTaskDialog クラス

階層図

CTaskDialog::AddCommandControl

CTaskDialog::SetCommandControlOptions

CTaskDialog::RemoveAllCommandControls