A estrutura DLGTEMPLATEEX não está definida em qualquer arquivo de cabeçalho padrão. A definição de estrutura é fornecida aqui para explicar o formato de um modelo para uma caixa de diálogo estendido.
Um modelo de caixa de diálogo estendida começa com um cabeçalho DLGTEMPLATEEX que descreve a caixa de diálogo e especifica o número de controles na caixa de diálogo. Para cada Controlarar em uma caixa de diálogo, um modelo de caixa de diálogo estendida tem um bloco de dados que usa o formato DLGITEMTEMPLATEEX para descrever o controle.
typedef struct {palavra dlgVer; PALAVRA assinatura; DWORD helpID; ExStyle DWORD; Estilo de DWORD; PALAVRA cDlgItems; x curto; y curto; cx curto; cy curto; menu de sz_Or_Ord; / / nome ou ordinal de um recurso menu windowClass sz_Or_Ord; / / nome ou ordinal de uma classe de janela Título WCHAR [titleLen]; / / título seqüência de caracteres de caixa de diálogo pointsize curto; / / só se DS_SETFONT sinalizador é definido Peso curto; / / só se DS_SETFONT sinalizador é definido bItalic curto; / / só se DS_SETFONT sinalizador é definido Fonte WCHAR [fontLen]; / / nome face de tipos, se DS_SETFONT for definido } DLGTEMPLATEEX
| Valor | Significado |
|---|---|
| DS_3DLOOK | Fornece a caixa de diálogo uma fonte nonbold e desenha bordas tridimensionais em torno de janelas de Controlarar na caixa de diálogo. O estilo DS_3DLOOK é necessária somente por aplicativos baseados em Win32 compilados para versões de sistema anteriores ao Windows 95 ou Windows NT 4.0. O sistema aplica automaticamente a aparência tridimensional a caixas de diálogo criadas por aplicativos compilados para versões atuais do sistema. |
| DS_ABSALIGN | Indica que as coordenadas da caixa de diálogo são as coordenadas de tela. Se esse estilo não for especificado, o sistema trata-los como coordenadas do cliente. |
| DS_CENTER | Centraliza a caixa de diálogo na área de trabalho; ou seja, a área não obscurecida pela bandeja. |
| DS_CENTERMOUSE | Centraliza o cursor do mouse na caixa de diálogo. |
| DS_CONTEXTHELP | Inclui um ponto de interrogação na barra de título da caixa de diálogo. Quando o usuário clica o ponto de interrogação, o cursor muda para um ponto de interrogação com um ponteiro. Se o usuário clica em um controle na caixa de diálogo, o Controlarar recebe uma mensagem WM_HELP. O controle deve passar a mensagem para o procedimento caixa de diálogo, que deve chamar o WinHelp função usando o comando HELP_WM_HELP. O aplicativo de ajuda exibe uma janela pop-up que normalmente contém ajuda para o controle. Observe que DS_CONTEXTHELP é apenas um espaço reservado. Quando a caixa diálogo é criada, o sistema verifica DS_CONTEXTHELP e, se houver, adiciona WS_EX_CONTEXTHELP para o estendido estilo da caixa de diálogo. Você não pode usar o estilo WS_EX_CONTEXTHELP com os estilos WS_MAXIMIZEBOX ou WS_MINIMIZEBOX. |
| DS_CONTROL | Cria uma caixa diálogo que funciona bem como um janela filho da outra caixa de diálogo, semelhante a uma página em um folha de propriedades. Esse estilo permite que o usuário separador entre as janelas de Controlarar de uma caixa de diálogo filho, use as chaves de accelerator e assim por diante. |
| DS_FIXEDSYS | Faz com que a caixa de diálogo usar o SYSTEM_FIXED_FONT em vez do padrão SYSTEM_FONT. SYSTEM_FIXED_FONT é uma fonte monoespaçada compatível com a fonte do sistema em versões do Windows anteriores ao 3.0. |
| DS_LOCALEDIT | Aplica-se a apenas aplicativos de 16 bits. Esse estilo direciona editar controles na caixa de diálogo alocar memória do segmento de dados do aplicativo. Caso contrário, editar controles alocar armazenamento de um objeto memória global. |
| DS_MODALFRAME | Cria uma caixa diálogo com um quadro de janela restrita caixa de diálogo que pode ser combinado com uma barra de título e sistema menu especificando os estilos WS_CAPTION e WS_SYSMENU. |
| DS_NOFAILCREATE | Windows 95: Cria a caixa de diálogo, mesmo se ocorrer erros — por exemplo, se não é possível criar uma janela filho ou se o sistema não é possível criar um segmento de dados especial para um controle editar. |
| DS_NOIDLEMSG | Suprime mensagens WM_ENTERIDLE que o sistema seria caso contrário enviar para o proprietário da caixa de diálogo enquanto a caixa de diálogo é exibida. |
| DS_SETFONT | Indica que o cabeçalho DLGTEMPLATEEX de modelo de caixa de diálogo estendida contém quatro membros adicionais (pointsize, peso, bItalice fonte) que descrevem o tipo de letra a utilizar para o texto na área cliente e controles de caixa de diálogo. Se possível, o sistema cria uma fonte de acordo com os valores especificados nesses Membros. Então o sistema passa o identificador da fonte para a caixa de diálogo e para cada controle, enviando-lhes a mensagem WM_SETFONT. Se esse estilo não for especificado, o modelo de caixa de diálogo estendida não inclui os membros pointsize, peso, bItalice fonte. |
| DS_SETFOREGROUND | Faz com que o sistema usar o SetForegroundWindow função para trazer a caixa de diálogo para o primeiro plano. |
| DS_SYSMODAL | Este estilo é obsoleto e é incluído para compatibilidade com versões anteriores do Windows. Se você especificar esse estilo, o sistema cria a caixa de diálogo com o estilo WS_EX_TOPMOST. Não combinar esse estilo com o estilo DS_CONTROL. |
Você pode usar um modelo de caixa de diálogo estendida em vez de um modelo de caixa de diálogo padrão no CreateDialogIndirectParam e DialogBoxIndirectParam funções e o CreateDialogIndirect e DialogBoxIndirect macros. Um modelo de caixa de diálogo padrão usa as estruturas DLGTEMPLATE e DLGITEMTEMPLATE.
Após o cabeçalho DLGTEMPLATEEX em um modelo de caixa de diálogo estendida é uma ou mais estruturas DLGITEMTEMPLATEEX que descrevem os controles da caixa de diálogo. O membro cDlgItems especifica o número de estruturas DLGITEMTEMPLATEEX de modelo.
Cada estrutura DLGITEMTEMPLATEEX no modelo deve ser alinhada em um DWORD limite. Se o estilo membro especifica o estilo DS_SETFONT, o primeiro DLGITEMTEMPLATEEX estrutura começa na primeiro DWORD limite após a Cadeia de caracteres de fonte . Se DS_SETFONT não for especificado, a primeira estrutura começa na primeiro DWORD limite após a Cadeia de caracteres de título.
O menu, windowClass, títuloe fonte matrizes devem ser alinhados no WORD os limites.
Se você especificar seqüências de caracteres no menu, windowClass, títuloe fonte matrizes, você deve usar 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.
Os x, y, cxe cy Membros especificar valores em unidades de caixa de diálogo. Você pode converter esses valores para unidades tela (pixels) usando o MapDialogRect função.
nbsp; Windows &NT: requer versão 3.51 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Não suportado.
Visão geral de caixas de diálogo, estruturas de caixa de diálogo, CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT