CreateDialogIndirectParam

A CreateDialogIndirectParam função cria uma caixa de diálogo sem janela restrita de um modelo de caixa de diálogo na memória. Antes de exibir a caixa de diálogo, a função passa um application-defined value para o procedimento caixa de diálogo como o lParam parâmetro da mensagem WM_INITDIALOG . Um aplicativo pode usar esse valor para inicializar controles caixa de diálogo.

(HWND CreateDialogIndirectParam HINSTANCE  hInstance, / / identificador de instância de aplicativoLPCDLGTEMPLATElpTemplate, / / ponteiro para caixa de diálogo caixa modeloHWNDhWndParent, / / identificador para janela de proprietárioDLGPROClpDialogFunc, / / ponteiro para caixa de diálogo caixa procedimentoLPARAMlParamInit / / valor de inicialização);
 

Parâmetros

hInstance
Identifica a instância do módulo que irá criar a caixa de diálogo.
lpTemplate
Ponteiro para um objeto memória global contendo um modelo que CreateDialogIndirectParam usa para criar a caixa de diálogo. Um modelo caixa diálogo consiste de um cabeçalho que descreve a caixa de diálogo, seguida por um ou mais blocos adicionais de dados que descrevem cada um dos controles na caixa de diálogo. O modelo pode usar o Formatarar padrão ou o formato estendido.

Em um modelo padrão, o cabeçalho é um DLGTEMPLATE estrutura seguida adicionais matrizes variable-length. Os dados para cada controle consistem de uma DLGITEMTEMPLATE estrutura seguida adicionais matrizes variable-length.

Em um modelo de caixa de diálogo estendida, o cabeçalho usa o formato DLGTEMPLATEEX e as definições de controle usam o formato DLGITEMTEMPLATEEX.

Após CreateDialogIndirectParam retorna, você pode liberar o modelo, que só é usado para obter a caixa de diálogo iniciada.

hWndParent
Identifica a janela que possui a caixa de diálogo.
lpDialogFunc
Ponteiro para o procedimento caixa de diálogo. Para obter mais informações sobre o procedimento de caixa de diálogo, consulte DialogProc .
lParamInit
Especifica o valor para passar para a caixa de diálogo in a lParam parâmetro da mensagem WM_INITDIALOG.

Retornar valores

Se a função for bem-sucedido, o valor de retorno é o identificador de janela para a caixa de diálogo.

Se a função falhar, o valor de retorno é NULL. Para informações de erro estendidas get, chamar GetLastError.

Observações

A CreateDialogIndirectParam função usa o CreateWindowEx função para criar a caixa de diálogo. CreateDialogIndirectParam , em seguida, envia uma mensagem WM_INITDIALOG para o procedimento de caixa de diálogo. Se o modelo especifica o estilo DS_SETFONT, a função também envia uma mensagem WM_SETFONT para o procedimento caixa de diálogo. A função exibe a caixa de diálogo se o modelo especifica o estilo WS_VISIBLE. Finalmente, CreateDialogIndirectParam retorna o identificador de janela para a caixa de diálogo.

Após CreateDialogIndirectParam retorna, você pode usar a função ShowWindow para exibir a caixa de diálogo (se ainda não estiver visível). Para destruir a caixa de diálogo, use o DestroyWindow função.

Em um padrão modelo caixa diálogo, a DLGTEMPLATE estrutura e cada um da DLGITEMTEMPLATE estruturas devem ser alinhados no DWORD os limites. A matriz dados de criação que segue um DLGITEMTEMPLATE estrutura também deve ser alinhada em um DWORD limite. Todas as outras matrizes de comprimento variável no modelo devem devem ser alinhadas no WORD os limites.

Em um modelo de caixa de diálogo estendida, o cabeçalho DLGTEMPLATEEX e cada uma das definições de controle DLGITEMTEMPLATEEX devem ser alinhados no DWORD os limites. A matriz de dados de criação, se qualquer, que segue uma estrutura DLGITEMTEMPLATEEX também deve ser alinhada em um DWORD limite. Todas as outras matrizes de comprimento variável no modelo devem ser alinhadas no WORD os limites.

Todas as seqüências de caracteres no modelo de caixa de diálogo, tais como títulos para a caixa de diálogo e botões, devem ser seqüências de caracteres Unicode. Para criar código que funciona em Windows e Windows NT, use o MultiByteToWideChar função para gerar esses seqüências Unicode.

Windows 95 e posterior:O sistema pode oferecer suporte a um máximo de 255 controles por modelo caixa diálogo. Para colocar mais de 255 controles em uma caixa de diálogo, crie os controles no manipulador de mensagem WM_INITDIALOG em vez de colocá-los no modelo.

Windows CE: Caixas de diálogo fora da área visível da tela não são reposicionadas automaticamente.

Se o usuário pressiona ALT + H, enquanto a caixa de diálogo tiver o foco de entrada, o sistema envia uma mensagem WM_HELP para o procedimento caixa de diálogo. Um aplicativo deve responder a esta mensagem, exibindo ajuda contextual para a caixa de diálogo.

Não há suporte para os seguintes estilos para o membro estilo a DLGTEMPLATE estrutura:

Para obter o posicionamento padrão, use o estilo DS_CENTER.

Se o estilo estilo não for especificado, presume-se o estilo WS_POPUP.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Unicode:Implementado como versões Unicode e ANSI no Windows NT.

Ver também

Visão geral de caixas de diálogo, funções de caixa de diálogo, CreateDialog, CreateDialogIndirect, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

Index