De CreateDialogIndirect macro maakt een niet-modaal dialoogvenster van een dialoogvenster vak sjabloon in het geheugen. De macro CreateDialogIndirect wordt de functie CreateDialogIndirectParam gebruikt.
HWND CreateDialogIndirect) HINSTANCE hInstance, / / ingang naar toepassingsexemplaarLPCDLGTEMPLATElpTemplate, / / aanwijzer aan dialog box sjabloonHWNDhWndParent, / / verwerken naar eigenaar vensterDLGPROClpDialogFunc / / aanwijzer aan dialog box procedure);
In een standaard template is de koptekst een DLGTEMPLATE structuur gevolgd door extra arrays van variabele lengte. De gegevens voor elk besturingselement bestaat uit een structuur van DLGITEMTEMPLATE gevolgd door extra arrays van variabele lengte.
In een uitgebreide dialoogvenster vak sjabloon, de kop de indeling DLGTEMPLATEEX gebruikt en de definities van de controle de notatie DLGITEMTEMPLATEEX gebruiken.
Nadat CreateDialogIndirect als resultaat geeft, kunt u de sjabloon, die alleen wordt gebruikt om het dialoogvenster begon gratis.
Als de functie slaagt, is de geretourneerde waarde de vensteringang voor het dialoogvenster.
Als de functie mislukt, is de retourwaarde NULL. Te krijgen uitgebreide foutinformatie, Bel GetLastError.
De macro CreateDialogIndirect wordt de functie CreateWindowEx gebruikt om het dialoogvenster te maken. CreateDialogIndirect stuurt een WM_INITDIALOG -bericht naar het dialoogvenster vak procedure. Als de sjabloon de DS_SETFONT stijl geeft, verzendt de functie ook een WM_SETFONT -bericht naar het dialoogvenster vak procedure. De functie wordt het dialoogvenster weergegeven als de sjabloon de WS_VISIBLE stijl geeft. Tot slot, CreateDialogIndirect de vensteringang terugkeert naar het dialoogvenster.
Nadat CreateDialogIndirect als resultaat geeft, kunt u de functie ShowWindow worden weergegeven in het dialoogvenster (als deze nog niet zichtbaar). Te vernietigen in het dialoogvenster, gebruikt u de functie DestroyWindow.
In een standaard dialoogvenster vak sjabloon, moeten de DLGTEMPLATE structuur en elk van de DLGITEMTEMPLATE structuren worden uitgelijnd op DWORD grenzen. De creatie data array die een DLGITEMTEMPLATE structuur volgt moet ook worden uitgelijnd op een DWORD grens. Alle van de andere arrays van variabele lengte in de sjabloon moet moet worden uitgelijnd op woordgrenzen.
In een uitgebreide dialoogvenster vak sjabloon, moeten de header DLGTEMPLATEEX en elk van de DLGITEMTEMPLATEEX controle definities worden uitgelijnd op DWORD grenzen. De creatie data array, als een, die een DLGITEMTEMPLATEEX structuur volgt moet ook worden uitgelijnd op een DWORD grens. Alle van de andere arrays van variabele lengte in de sjabloon moet worden uitgelijnd op woordgrenzen.
Alle tekenreeksen in het dialoogvenster vak sjabloon, zoals titels voor de knoppen, en het dialoogvenster moeten worden Unicode-tekenreeksen. Gebruik de functie MultiByteToWideChar voor het genereren van deze Unicode-tekenreeksen om code die op zowel Windows als Windows NT werkt maken,.
Windows 95 en hoger:Het systeem kan maximaal 255 besturingselementen per dialoogvenster vak sjabloon ondersteunen. Meer dan 255 besturingselementen in het dialoogvenster plaatsen, maakt u de besturingselementen in de handler WM_INITDIALOG bericht eerder dan het plaatsen van hen in de sjabloon.
Windows CE: Niet alle opmaakprofielen worden ondersteund in de DLGTEMPLATE structuur in het dialoogvenster sjabloon waarnaar door de parameter lpTemplate .
nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.
Unicode:Geďmplementeerd als Unicode en ANSI-versies van Windows NT.
Overzicht van dialoogvenster vakken, dialoogvenster vak functies, CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT