Compartilhar via


CreateDialogIndirect

Windows Mobile SupportedWindows Embedded CE Supported

9/9/2008

Essa função cria uma sem janela restrita caixa de diálogo de um modelo caixa diálogo na memória.

Syntax

HWND CreateDialogIndirect( 
  HINSTANCE hInstance, 
  LPCDLGTEMPLATE lpTemplate, 
  HWND hWndParent, 
  DLGPROC lpDialogFunc
); 

Parameters

  • hInstance
    [no] Identificador para o módulo que cria a caixa diálogo.
  • lpTemplate
    [no] Ponteiro longo para um objeto memória global contendo um modelo que CreateDialogIndirect usa para criar a caixa diálogo. Um modelo caixa diálogo consiste de um cabeçalho que descreve a caixa 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 ambos o padrão formato ou o estendido formato.

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

    Após CreateDialogIndirect Retorna, você pode livre de modelo, que só é usado para get a caixa diálogo iniciada.

  • hWndParent
    [no] Identificador para a janela proprietária caixa de diálogo.
  • lpDialogFunc
    [no] Ponteiro longo para o procedimento caixa de diálogo. Para obter mais informações sobre o procedimento caixa de diálogo, consulte DialogProc.

Return Value

O manipulador de janela para caixa de diálogo indica sucesso. NULL Indica falha. Para informações de erro estendidas get, chamar GetLastError.

Remarks

O CreateDialogIndirect macro usa o CreateWindowEx função para criar a caixa diálogo. CreateDialogIndirect Em seguida, envia uma WM_INITDIALOG mensagem para o procedimento caixa de diálogo. A função exibe a caixa diálogo se o modelo especifica o estilo WS_VISIBLE. Finalmente, CreateDialogIndirect Retorna o manipulador de janela para caixa de diálogo.

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

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

Quando você cria uma caixa diálogo por chamado CreateDialogIndirect, a caixa diálogo pode não receber mensagens porque uma estrutura interna não é alinhada em DWORD Os limites. Para get em torno esse problema, chamar o GetClassInfo função sobre a classe para caixa diálogo do sistema e examine o valor da cbWndExtra parâmetro da WNDCLASS estrutura que GetClassInfo Recupera.

Todas as seqüências caractere no modelo caixa de diálogo, such as títulos para a caixa diálogo e botões, devem ser seqüências de caracteres Unicode.

Windows Embedded CE não todos os estilos no suporte a DLGTEMPLATE estrutura. Essa estrutura consta o modelo identificado pelo lpTemplate parâmetro*.*

Requirements

Header winuser.h
Library Dlgmgr.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

CreateDialog
CreateDialogIndirectParam
CreateDialogParam
CreateWindowEx
DestroyWindow
DialogProc
GetClassInfo
ShowWindow
WM_INITDIALOG
WM_SETFONT
DLGITEMTEMPLATE
DLGTEMPLATE
WNDCLASS
Dialog Boxes Functions