En dialog boks mal i minnet består av et hode som beskriver dialogboksen, etterfulgt av én eller flere flere blokker med data som beskriver hver av kontrollene i dialogboksen. Malen kan bruke enten standard format eller utvidet format. I en standard mal er hodet en DLGTEMPLATE struktur etterfulgt av ekstra variabel lengde-matriser. Dataene for hver kontroll består av en DLGITEMTEMPLATE struktur etterfulgt av ekstra variabel lengde-matriser. I en utvidet dialogboksen boksen mal, hodet bruker DLGTEMPLATEEX formatet og kontroll-definisjoner bruker DLGITEMTEMPLATEEX formatet.
Skille en standardmal, en utvidet mal, kan du kontrollere de første 16-bitene av en dialog boks mal. I en utvidet mal er det første ordet 0xFFFF; en annen verdi angir en standard mal.
Hvis du oppretter en mal i dialogboksen i minnet, må du kontrollere at du hver av DLGITEMTEMPLATE eller DLGITEMTEMPLATEEX -kontrollen justeres definisjoner på DWORD grenser. I tillegg må etableringen data som følger en definisjon for kontrollen justeres på en DWORD -grense. Alle de andre variabel lengde matrisene i en mal for dialogboksen-boksen må justeres på WORD -grenser.
Overskriften mal
I både standard og utvidede malene for dialogbokser inneholder hodet følgende generelle opplysninger:
Plasseringen og målene i dialogboksen
Vinduet og dialogboksen Boksstiler for dialogboksen
Antall kontroller i dialogboksen. Denne verdien bestemmer hvor mange DLGITEMTEMPLATE eller DLGITEMTEMPLATEEX kontroll definisjonene i malen.
En valgfri menyen ressurs for dialogboksen. Malen kan indikere at dialogboksen har ikke en meny, eller det kan angi en Ordenstallet eller null-avbrutt Unicode-streng som identifiserer en ressurs på menyen i en kjørbar fil.
Vindusklassen i dialogboksen. Dette kan være enten forhåndsdefinerte dialogboksen boksen klassen, eller en Ordenstallet eller null-avbrutt Unicode-streng som identifiserer en registrerte vindusklasse.
En null-avbrutt Unicode-streng som angir tittelen for dialogvindauget-boksen. Hvis strengen er tom, er det tomt for tittellinjen i dialogboksen. Hvis dialogboksen ikke har stilen WS_CAPTION, systemet angir tittelen til den angitte strengen, men vise ikke den.
Hvis dialogboksen har stilen DS_SETFONT, angir hodet punkt størrelse og skriftsnitt navnet på skriften du vil bruke for teksten i klientområdet og kontroller i dialogboksen.
I en utvidet mal angir DLGTEMPLATEEX hodet også følgende tilleggsinformasjon:
Hjelp-kontekst-ID som identifiserer boksen dialogvindauget når systemet sender en WM_HELP -melding.
Hvis dialogboksen har stilen DS_SETFONT, hodet angir font-weight, og angir om skriften er kursiv.
Kontroll-definisjoner
Etter mal-hodet er én eller flere kontroll-definisjoner som beskriver kontrollene i dialogboksen. I både standard og utvidede malene har dialogboksen boksen hodet medlem som angir hvor mange kontroll definisjonene i malen. I en standard mal består hver kontroll-definisjon av en DLGITEMTEMPLATE struktur etterfulgt av ekstra variabel lengde-matriser. I en utvidet mal bruker kontroll-definisjoner DLGITEMTEMPLATEEX formatet.
I både standard og utvidede malene inkluderer kontroll definisjonen følgende informasjon:
Plasseringen og målene til kontrollen.
Vinduet og kontroll stilene for kontrollen.
Kontroll-ID.
Vindusklassen for kontrollen. Dette kan være enten Ordenstallet til en forhåndsdefinert systemklasse eller en null-avbrutt Unicode-streng som angir navnet på en registrert vindusklasse.
En null-avbrutt Unicode-streng som angir den første teksten i kontrollen, eller en Ordenstallet som identifiserer en ressurs, for eksempel et ikon, i en kjørbar fil.
En valgfri variabel lengde datablokk etableringen. Når programmet oppretter kontrollen, sender den en peker til disse dataene i lParam -parameteren for WM_CREATE -meldingen som sendes til kontrollen.
I en utvidet mal, kontroll-definisjonen også angir en hjelp kontekst-ID som identifiserer kontrollen når systemet sender en WM_HELP -melding.