CreateDialogIndirectParam

CreateDialogIndirectParam -funksjonen oppretter en ikke-sperrende dialogboks fra en dialog boks mal i minnet. Før du kan vise dialogboksen, sender funksjonen en Programdefinert verdi i dialogboksen boksen prosedyren som lParam -parameter i WM_INITDIALOG -meldingen. Et program kan bruke denne verdien til å initialisere dialogbokskontroller.

() HWND CreateDialogIndirectParam HINSTANCE  hInstance, / / håndtere til programforekomstenLPCDLGTEMPLATElpTemplate, / / peker til dialogboksen boksen malHWNDhWndParent, / / håndtere til eiervinduetDLGPROClpDialogFunc, / / peker til dialogboksen boksen prosedyreLPARAMlParamInit / / initialisering verdi);
 

Parametere

hInstance
Identifiserer forekomsten av modulen som vil opprette dialogboksen.
lpTemplate
Pekeren til en global minne-objekt som inneholder en mal som CreateDialogIndirectParam bruker til å opprette dialogboksen. En dialog boks mal 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 standard format eller formatet utvidet.

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 CreateDialogIndirectParam returnerer, kan du frigjøre malen, som brukes bare til å få dialogboksen startet.

hWndParent
Identifiserer vinduet som eier dialogboksen.
lpDialogFunc
Pekeren til dialogboksen boksen prosedyre. Hvis du vil ha mer informasjon om dialogboksen boksen fremgangsmåten, kan du se DialogProc.
lParamInit
Angir verdien til dialogboksen i i lParam -parameteren for WM_INITDIALOG-melding.

Returverdier

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.

Merknader

CreateDialogIndirectParam -funksjonen bruker CreateWindowEx -funksjonen til å opprette dialogboksen. CreateDialogIndirectParam 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, CreateDialogIndirectParam returnerer vindusreferansen til dialogboksen.

Når CreateDialogIndirectParam 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: Dialogboksene utenfor det synlige området av skjermen omplasseres ikke automatisk.

Hvis brukeren trykker ALT + H, mens dialogboksen har inndata fokus, posterer systemet en WM_HELP melding i dialogboksen prosedyren. Et program skal svare på denne meldingen ved å vise kontekstavhengig hjelp for dialogboksen.

Følgende stiler støttes ikke for stil -medlem av DLGTEMPLATE -struktur:

For å få standardplasseringen, kan du bruke DS_CENTER-stil.

Hvis stilen for WS_CHILD ikke er angitt, antas WS_POPUP-stil.

Hurtiginformasjon

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.

Se også

Oversikt over dialogboksen-boksene, dialogboksen boksen-funksjoner, CreateDialog, CreateDialogIndirect, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

Index