Функция TaskDialogIndirect (commctrl.h)
Функция TaskDialogIndirect создает, отображает и управляет диалоговым окном задачи. Диалоговое окно задачи содержит определяемые приложением значки, сообщения, заголовок, поле проверка проверки, ссылки на команды, кнопки и переключатели. Эта функция может зарегистрировать функцию обратного вызова для получения уведомлений.
Синтаксис
HRESULT TaskDialogIndirect(
[in] const TASKDIALOGCONFIG *pTaskConfig,
[out, optional] int *pnButton,
[out, optional] int *pnRadioButton,
[out, optional] BOOL *pfVerificationFlagChecked
);
Параметры
[in] pTaskConfig
Тип: const TASKDIALOGCONFIG*
Указатель на структуру TASKDIALOGCONFIG , содержащую сведения, используемые для отображения диалогового окна задачи.
[out, optional] pnButton
Тип: int*
Адрес переменной, которая получает один из следующих вариантов:
- один из идентификаторов кнопок, указанных в элементе pButtons параметра pTaskConfig
- одно из следующих значений:
Значение | Описание |
---|---|
0 | Сбой вызова функции. Дополнительные сведения см. в разделе Возвращаемое значение. |
IDCANCEL | Была выбрана кнопка "Отмена", нажата клавиша ALT+F4, нажата escape-кнопка или пользователь нажал кнопку закрытия окна. |
IDNO | Кнопка не выбрана. |
IDOK | Выбрана кнопка ОК. |
IDRETRY | Выбрана кнопка "Повторить". |
IDYES | Выбрана кнопка "Да ". |
Если этот параметр имеет значение NULL, значение не возвращается.
[out, optional] pnRadioButton
Тип: int*
Адрес переменной, которая получает один из идентификаторов кнопок, указанных в элементе pRadioButtons параметра pTaskConfig . Если этот параметр имеет значение NULL, значение не возвращается.
[out, optional] pfVerificationFlagChecked
Тип: BOOL*
Адрес переменной, которая получает одно из следующих значений.
Значение | Описание |
---|---|
TRUE | Флажок проверки был установлен при закрытии диалогового окна. |
FALSE | Флажок проверки не был установлен при закрытии диалогового окна. |
Если этот параметр имеет значение NULL, флажок проверки отключен.
Возвращаемое значение
Тип: HRESULT
Эта функция может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Недостаточно памяти для завершения операции. |
|
Один или несколько аргументов являются недопустимыми. |
|
Операция не удалась. |
Комментарии
При использовании диалогового окна задачи для указания нехватки памяти в системе строки, на которые указывают различные элементы строки и значки в структуре TASKDIALOGCONFIG , не следует брать из файла ресурсов, так как попытка загрузки ресурса может завершиться ошибкой.
При создании диалогового окна задачи при его наличии используйте дескриптор для диалогового окна в качестве параметра hWndParent . Параметр hWndParent не должен идентифицировать дочернее окно, например элемент управления в диалоговом окне.
Родительское окно не должно быть скрыто или отключено при вызове этой функции.
int nButtonPressed = 0;
TASKDIALOGCONFIG config = {0};
const TASKDIALOG_BUTTON buttons[] = {
{ IDOK, L"Change password" }
};
config.cbSize = sizeof(config);
config.hInstance = hInst;
config.dwCommonButtons = TDCBF_CANCEL_BUTTON;
config.pszMainIcon = TD_WARNING_ICON;
config.pszMainInstruction = L"Change Password";
config.pszContent = L"Remember your changed password.";
config.pButtons = buttons;
config.cButtons = ARRAYSIZE(buttons);
TaskDialogIndirect(&config, &nButtonPressed, NULL, NULL);
switch (nButtonPressed)
{
case IDOK:
break; // the user pressed button 0 (change password).
case IDCANCEL:
break; // user canceled the dialog
default:
break; // should never happen
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | commctrl.h (включая Commctrl.h) |
Библиотека | Comctl32.lib |
DLL | Comctl32.dll (версия 6) |
См. также раздел