CreateDialogIndirect makroen oppretter en ikke-sperrende dialogboks fra en dialog boks mal i minnet. CreateDialogIndirect makroen bruker funksjonen CreateDialogIndirectParam.
() HWND CreateDialogIndirect HINSTANCE hInstance, / / håndtere til programforekomstenLPCDLGTEMPLATElpTemplate, / / peker til dialogboksen boksen malHWNDhWndParent, / / håndtere til eiervinduetDLGPROClpDialogFunc / / peker til dialogboksen boksen prosedyre);
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.
Etter at CreateDialogIndirect returnerer, kan du frigjøre malen, som brukes bare til å få dialogboksen startet.
Hvis funksjonen er vellykket, er returverdien vindusreferansen til dialogboksen.
Hvis funksjonen mislykkes, er verdien som returneres NULL. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.
CreateDialogIndirect makroen bruker CreateWindowEx -funksjonen til å opprette dialogboksen. CreateDialogIndirect sender en melding i WM_INITDIALOG i dialogboksen boksen prosedyren. Hvis malen angir stilen DS_SETFONT, sender funksjonen også en WM_SETFONT -melding i dialogboksen boksen prosedyren. Funksjonen viser dialogboksen vises hvis malen angir stilen WS_VISIBLE. Til slutt, CreateDialogIndirect returnerer vindusreferansen til dialogboksen.
Når CreateDialogIndirect returnerer, kan du bruke funksjonen ShowWindow for å vise dialogboksen (Hvis det ikke allerede er synlig). For å ødelegge dialogboksen, kan du bruke funksjonen DestroyWindow.
I en mal for standard-dialog boks må strukturen DLGTEMPLATE , og hver av DLGITEMTEMPLATE -strukturer justeres på DWORD grenser. Etableringen data matrisen som følger en DLGITEMTEMPLATE struktur må også justeres på en DWORD -grense. Alle de andre variabel lengde matrisene i malen må må justeres på WORD -grenser.
I en utvidet dialogboksen boksen mal, må DLGTEMPLATEEX hodet, og hver av definisjoner for DLGITEMTEMPLATEEX -kontrollen justeres på DWORD grenser. Etableringen data matrisen, hvis noen, som følger en DLGITEMTEMPLATEEX struktur må også justeres på en DWORD -grense. Alle de andre variabel lengde matrisene i malen må justeres på WORD -grenser.
Alle tegnstrengene i dialogboksen boksen-mal, for eksempel titler for dialogboksen og knapper, må være Unicode-strenger. For å opprette kode som fungerer på både Windows og Windows NT, kan du bruke MultiByteToWideChar -funksjonen til å generere disse Unicode-strenger.
Windows 95 og senere:Systemet kan støtte opptil 255 kontroller per boks-mal i dialogboksen. Du kan plassere mer enn 255 kontroller i en dialogboks, kan du opprette kontrollene i Meldingsbehandling for WM_INITDIALOG i stedet for å plassere dem i malen.
Windows CE: Ikke alle stiler støttes i DLGTEMPLATE -strukturen i dialogboksen malen referert til av parameteren lpTemplate .
nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.
Unicode:Implementert som Unicode- og ANSI-versjoner på Windows NT.
Oversikt over dialogboksen-boksene, dialogboksen boksen-funksjoner, CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT