Função DialogBoxIndirectParamA (winuser.h)
Cria uma caixa de diálogo modal de um modelo de caixa de diálogo na memória. Antes de exibir a caixa de diálogo, a função passa um valor definido pelo aplicativo para o procedimento da caixa de diálogo como o parâmetro lParam da mensagem WM_INITDIALOG . Um aplicativo pode usar esse valor para inicializar controles de caixa de diálogo.
Sintaxe
INT_PTR DialogBoxIndirectParamA(
[in, optional] HINSTANCE hInstance,
[in] LPCDLGTEMPLATEA hDialogTemplate,
[in, optional] HWND hWndParent,
[in, optional] DLGPROC lpDialogFunc,
[in] LPARAM dwInitParam
);
Parâmetros
[in, optional] hInstance
Tipo: HINSTANCE
Um identificador para o módulo que cria a caixa de diálogo.
[in] hDialogTemplate
Tipo: LPCDLGTEMPLATE
O modelo que DialogBoxIndirectParam usa para criar a caixa de diálogo. Um modelo de caixa de diálogo consiste em um cabeçalho que descreve a caixa de diálogo, seguido por um ou mais blocos adicionais de dados que descrevem cada um dos controles na caixa de diálogo. O modelo pode usar o formato padrão ou o formato estendido.
Em um modelo padrão para uma caixa de diálogo, o cabeçalho é uma estrutura DLGTEMPLATE seguida por matrizes de comprimento variável adicionais. Os dados de cada controle consistem em uma estrutura DLGITEMTEMPLATE seguida por matrizes de comprimento variável adicionais.
Em um modelo estendido para uma caixa de diálogo, o cabeçalho usa o formato DLGTEMPLATEEX e as definições de controle usam o formato DLGITEMTEMPLATEEX .
[in, optional] hWndParent
Digite: HWND
Um identificador para a janela que possui a caixa de diálogo.
[in, optional] lpDialogFunc
Tipo: DLGPROC
Um ponteiro para o procedimento da caixa de diálogo. Para saber mais sobre o procedimento da caixa de diálogo, confira DialogProc.
[in] dwInitParam
Tipo: LPARAM
O valor a ser passado para a caixa de diálogo no parâmetro lParam da mensagem WM_INITDIALOG .
Retornar valor
Tipo: INT_PTR
Se a função for bem-sucedida, o valor retornado será o parâmetro nResult especificado na chamada para a função EndDialog que foi usada para encerrar a caixa de diálogo.
Se a função falhar porque o parâmetro hWndParent é inválido, o valor retornado será zero. A função retorna zero nesse caso para compatibilidade com versões anteriores do Windows. Se a função falhar por qualquer outro motivo, o valor retornado será –1. Para obter informações de erro estendidas, chame GetLastError.
Comentários
A função DialogBoxIndirectParam usa a função CreateWindowEx para criar a caixa de diálogo. DialogBoxIndirectParam envia uma mensagem WM_INITDIALOG para o procedimento da caixa de diálogo. Se o modelo especificar o estilo DS_SETFONT ou DS_SHELLFONT, a função também enviará uma mensagem WM_SETFONT para o procedimento da caixa de diálogo. A função exibe a caixa de diálogo (independentemente de o modelo especificar o estilo WS_VISIBLE ), desabilitar a janela do proprietário e iniciar seu próprio loop de mensagem para recuperar e expedir mensagens para a caixa de diálogo.
Quando o procedimento da caixa de diálogo chama a função EndDialog , DialogBoxIndirectParam destrói a caixa de diálogo, encerra o loop de mensagem, habilita a janela de proprietário (se habilitada anteriormente) e retorna o parâmetro nResult especificado pelo procedimento da caixa de diálogo quando chamado EndDialog.
Em um modelo de caixa de diálogo padrão, a estrutura DLGTEMPLATE e cada uma das estruturas DLGITEMTEMPLATE devem ser alinhadas nos limites DWORD . A matriz de dados de criação que segue uma estrutura DLGITEMTEMPLATE também deve ser alinhada em um limite DWORD . Todas as outras matrizes de comprimento variável no modelo devem ser alinhadas nos limites do WORD .
Em um modelo de caixa de diálogo estendido, o cabeçalho DLGTEMPLATEEX e cada uma das definições de controle DLGITEMTEMPLATEEX devem ser alinhados nos limites DWORD . A matriz de dados de criação, se houver, que segue uma estrutura DLGITEMTEMPLATEEX também deve ser alinhada em um limite DWORD . Todas as outras matrizes de comprimento variável no modelo devem ser alinhadas nos limites do WORD .
Todas as cadeias de caracteres no modelo da caixa de diálogo, como títulos para a caixa de diálogo e botões, devem ser cadeias de caracteres Unicode.
Observação
O cabeçalho winuser.h define DialogBoxIndirectParam como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Conjunto de APIs | ext-ms-win-ntuser-dialogbox-l1-1-0 (introduzido em Windows 8) |
Confira também
Conceitual
Referência