Função TaskDialogIndirect (commctrl.h)

A função TaskDialogIndirect cria, exibe e opera uma caixa de diálogo de tarefa. A caixa de diálogo de tarefa contém ícones definidos pelo aplicativo, mensagens, título, caixa de marcar de verificação, links de comando, botões de push e botões de opção. Essa função pode registrar uma função de retorno de chamada para receber mensagens de notificação.

Sintaxe

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

Parâmetros

[in] pTaskConfig

Tipo: const TASKDIALOGCONFIG*

Ponteiro para uma estrutura TASKDIALOGCONFIG que contém informações usadas para exibir a caixa de diálogo da tarefa.

[out, optional] pnButton

Tipo: int*

Endereço de uma variável que recebe:

  • uma das IDs de botão especificadas no membro pButtons do parâmetro pTaskConfig
  • um dos seguintes valores:
Valor Descrição
0 Falha na chamada de função. Consulte o valor retornado para obter mais informações.
IDCANCEL O botão Cancelar foi selecionado, Alt-F4 foi pressionado, Escape foi pressionado ou o usuário clicou no botão fechar janela .
IDNO Nenhum botão foi selecionado.
IDOK O botão OK foi selecionado.
IDRETRY O botão Repetir foi selecionado.
IDYES O botão Sim foi selecionado.
 

Se esse parâmetro for NULL, nenhum valor será retornado.

[out, optional] pnRadioButton

Tipo: int*

Endereço de uma variável que recebe uma das IDs de botão especificadas no membro pRadioButtons do parâmetro pTaskConfig . Se esse parâmetro for NULL, nenhum valor será retornado.

[out, optional] pfVerificationFlagChecked

Tipo: BOOL*

Endereço de uma variável que recebe um dos valores a seguir.

Valor Descrição
TRUE A caixa de seleção de verificação foi marcada quando a caixa de diálogo foi ignorada.
FALSE A caixa de seleção de verificação não foi marcada quando a caixa de diálogo foi ignorada.
 

Se esse parâmetro for NULL, a caixa de seleção de verificação será desabilitada.

Retornar valor

Tipo: HRESULT

Essa função pode retornar um desses valores.

Código de retorno Descrição
S_OK
A operação foi concluída com sucesso.
E_OUTOFMEMORY
Não há memória suficiente para concluir a operação.
E_INVALIDARG
Um ou mais argumentos não são válidos.
E_FAIL
Falha na operação.

Comentários

Quando você usa uma caixa de diálogo de tarefa para indicar que o sistema está com pouca memória, as cadeias de caracteres apontadas pelos vários membros de cadeia de caracteres e ícones na estrutura TASKDIALOGCONFIG não devem ser retiradas de um arquivo de recurso, pois uma tentativa de carregar o recurso pode falhar.

Se você criar uma caixa de diálogo de tarefa enquanto uma caixa de diálogo estiver presente, use um identificador para a caixa de diálogo como o parâmetro hWndParent . O parâmetro hWndParent não deve identificar uma janela filho, como um controle em uma caixa de diálogo.

A janela pai não deve ser ocultada ou desabilitada quando essa função é chamada.


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
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho commctrl.h (inclua Commctrl.h)
Biblioteca Comctl32.lib
DLL Comctl32.dll (versão 6)

Confira também

Caixas de diálogo