DialogBoxIndirectParam

DialogBoxIndirectParam -funksjonen oppretter en 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.

int () DialogBoxIndirectParam HINSTANCE  hInstance, / / håndtere til programforekomstenLPCDLGTEMPLATEhDialogTemplate,  / / identifiserer dialogboksen boksen malHWNDhWndParent, / / håndtere til eiervinduetDLGPROClpDialogFunc, / / peker til dialogboksen boksen prosedyreLPARAMdwInitParam / / initialisering verdi);
 

Parametere

hInstance
Identifiserer forekomsten av modulen som oppretter dialogboksen.
hDialogTemplate
Pekeren til en global minne-objekt som inneholder en mal som DialogBoxIndirectParam 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 standard mal for en dialogboks 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 mal for en dialogboks, hodet bruker DLGTEMPLATEEX formatet og kontroll-definisjoner bruker DLGITEMTEMPLATEEX formatet.

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.
dwInitParam
Angir verdien til dialogboksen i i lParam -parameteren for WM_INITDIALOG -melding.

Returverdier

Hvis funksjonen lykkes, er returverdien nResult -parameter som er spesifisert i kallet til funksjonen EndDialog , som ble brukt til å avslutte dialogboksen.

Hvis funksjonen mislykkes, er verdien som returneres-1. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.

Merknader

DialogBoxIndirectParam -funksjonen bruker CreateWindowEx -funksjonen til å opprette dialogboksen. DialogBoxIndirectParam 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 (uavhengig av om malen angir stilen WS_VISIBLE), deaktiverer eiervinduet og starter sin egen meldingsløkke for å hente og sende meldinger for dialogboksen.

Når dialogboksen boksen prosedyre kaller funksjonen EndDialog , DialogBoxIndirectParam ødelegger dialogboksen, slutter meldingsløkke, aktiverer du eiervinduet (Hvis det er aktivert tidligere) og returnerer parameteren nResult som er angitt av dialogboksen boksen prosedyre når det kalt EndDialog.

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: 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.

For andre dialogboksen begrensningene, se CreateDialogIndirectParam.

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, CreateWindowEx, DialogBox, DialogBoxIndirect, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

Index