DialogBoxIndirect

O DialogBoxIndirect macro cria uma caixa de diálogo restrita de um modelo de caixa de diálogo na memória. DialogBoxIndirect não retornar controle até que a função callback especificada termina de restrito caixa diálogo por chamado de EndDialog função. O DialogBoxIndirect macro usa a DialogBoxIndirectParam função.

int (DialogBoxIndirect HINSTANCE  hInstance, / / identificador de instância de aplicativoLPDLGTEMPLATElpTemplate, / / identifica o modelo de caixa de diálogoHWNDhWndParent, / / identificador para janela de proprietárioDLGPROClpDialogFunc / / ponteiro para caixa de diálogo caixa procedimento);
 

Parâmetros

hInstance
Identifica a instância do módulo que cria a caixa de diálogo.
lpTemplate
Ponteiro para um objeto memória global contendo um modelo que DialogBoxIndirect 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 padrão modelo para uma caixa de diálogo, 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 estendido para uma caixa de diálogo, o cabeçalho usa o formato DLGTEMPLATEEX e as definições de controle usam o formato DLGITEMTEMPLATEEX.

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 .

Retornar valores

Se a função for bem-sucedido, o valor de retorno é nResult parâmetro especificado na chamar para o EndDialog função que foi usado para encerrar a caixa de diálogo.

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

Observações

O DialogBoxIndirect macro usa o CreateWindowEx função para criar a caixa de diálogo. DialogBoxIndirect , 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 (independentemente de saber se o modelo especifica o estilo WS_VISIBLE), desativa a janela proprietária e inicia seu próprio loop de mensagem para recuperar e distribuir mensagens para a caixa de diálogo.

Quando o procedimento caixa de diálogo chama o EndDialog função, DialogBoxIndirect destrói a caixa diálogo termina o executar um loop mensagem, permite a janela proprietária (se anteriormente habilitado) e retorna nResult parâmetro especificado pelo procedimento caixa de diálogo quando ele chamado EndDialog.

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: Nem todos os estilos são suportados na DLGTEMPLATE estrutura no modelo de diálogo referida pelo parâmetro lpTemplate .

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, CreateWindowEx, DialogBox, DialogBoxIndirectParam, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index