Macro DialogBoxIndirectA (winuser.h)
Cria uma caixa de diálogo modal de um modelo de caixa de diálogo na memória. DialogBoxIndirect não retorna o controle até que a função de retorno de chamada especificada encerre a caixa de diálogo modal chamando a função EndDialog.
Sintaxe
void DialogBoxIndirectA(
[in, optional] hInstance,
[in] lpTemplate,
[in, optional] hWndParent,
[in, optional] lpDialogFunc
);
Parâmetros
[in, optional] hInstance
Tipo: HINSTANCE
Um identificador para o módulo que cria a caixa de diálogo.
[in] lpTemplate
Tipo: LPCDLGTEMPLATE
O modelo que DialogBoxIndirect 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 de DLGITEMTEMPLATE
Em um modelo estendido para uma caixa de diálogo, o cabeçalho usa o formato
[in, optional] hWndParent
Tipo: 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 obter mais informações sobre o procedimento da caixa de diálogo, consulte DialogProc.
Valor de retorno
Nenhum
Observações
A macro DialogBoxIndirect usa a função CreateWindowEx para criar a caixa de diálogo. DialogBoxIndirect 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 de 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, DialogBoxIndirect destrói a caixa de diálogo, encerra o loop de mensagem, habilita a janela do proprietário (se habilitada anteriormente) e retorna o parâmetro nResult especificado pelo procedimento da caixa de diálogo quando ele chamou EndDialog.
Em um modelo de caixa de diálogo padrão, a estrutura de
Em um modelo de caixa de diálogo estendida, o cabeçalho
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. Use a função
Exemplos
Para obter um exemplo, consulte Criando um modelo node memória.
Nota
O cabeçalho winuser.h define DialogBoxIndirect como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winuser.h (inclua Windows.h) |
biblioteca | User32.lib |
de DLL |
User32.dll |
Consulte também
Conceitual
dialogBoxParam
outros recursos
de referência de