Share via


Função CreateDialogIndirectParamA (winuser.h)

Cria uma caixa de diálogo sem formatar a partir 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

HWND CreateDialogIndirectParamA(
  [in, optional] HINSTANCE       hInstance,
  [in]           LPCDLGTEMPLATEA lpTemplate,
  [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 contém o modelo da caixa de diálogo. Se esse parâmetro for NULL, o executável atual será usado.

[in] lpTemplate

Tipo: LPCDLGTEMPLATE

O modelo CreateDialogIndirectParam 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 de dados adicionais 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, 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 de caixa de diálogo estendido, o cabeçalho usa o formato DLGTEMPLATEEX e as definições de controle usam o formato DLGITEMTEMPLATEEX .

Depois que CreateDialogIndirectParam retornar, você poderá liberar o modelo, que só é usado para iniciar a caixa de diálogo.

[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 .

Valor retornado

Digite: HWND

Se a função for bem-sucedida, o valor retornado será o identificador de janela para a caixa de diálogo.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função CreateDialogIndirectParam usa a função CreateWindowEx para criar a caixa de diálogo. CreateDialogIndirectParam 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 exibirá a caixa de diálogo se o modelo especificar o estilo WS_VISIBLE . Por fim, CreateDialogIndirectParam retorna o identificador de janela para a caixa de diálogo.

Depois que CreateDialogIndirectParam retornar, você poderá usar a função ShowWindow para exibir a caixa de diálogo (se ela ainda não estiver visível). Para destruir a caixa de diálogo, use a função DestroyWindow . Para dar suporte à navegação por teclado e outras funcionalidades da caixa de diálogo, o loop de mensagem da caixa de diálogo deve chamar a função IsDialogMessage .

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 estar 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 estar 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 CreateDialogIndirectParam 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

   
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 no Windows 8)

Confira também

Conceitual

Createdialog

Createdialogindirect

Createdialogparam

Createwindowex

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

DestroyWindow

Caixas de diálogo

DialogProc

MultiByteToWideChar

Outros recursos

Referência

Showwindow

WM_INITDIALOG

WM_SETFONT