DialogBoxIndirect makro vytvorí modálnym dialógovým oknom z dialógového okna pole Šablóna v pamäti. DialogBoxIndirect nevráti kontrolu, kým špecifikované callback funkciou ukončí modálnym dialógovým oknom volaním funkcie EndDialog . DialogBoxIndirect makro používa funkciu DialogBoxIndirectParam.
int DialogBoxIndirect ( HINSTANCE hInstance; / / spracovávať na aplikáciu stupňaLPDLGTEMPLATElpTemplate; / / identifikuje dialógovom poli šablónaHWNDhWndParent; / / zvládnuť vlastník oknaDLGPROClpDialogFunc / / ukazovateľ do dialógového poľa postup);
V šablóne štandardného dialógového okna v hlavičke je DLGTEMPLATE štruktúra nasleduje ďalšie polia premenlivej dĺžky. Údaje pre každý ovládací prvok pozostáva z DLGITEMTEMPLATE štruktúra nasleduje ďalšie polia premenlivej dĺžky.
V šablóne rozšíreného dialógového okna v hlavičke používa DLGTEMPLATEEX formát a kontrolu definície používať formát DLGITEMTEMPLATEEX.
Ak funkciu podarí, vrátená hodnota je parameter nResult stanovených vo výzve na EndDialog funkciu, ktorá bola použitá na ukončenie dialógového okna.
Ak funkcia zlyhá, vrátená hodnota je –1. Získajte rozšírené informácie o chybách, volajte na číslo GetLastError.
DialogBoxIndirect makro používa funkciu CreateWindowEx na vytvorenie dialógového okna. DialogBoxIndirect potom odošle správu WM_INITDIALOG postupu dialógové okno pole. Ak šablóna určuje DS_SETFONT štýl, funkciu tiež pošle správu WM_SETFONT postupu dialógové okno pole. Funkcia zobrazí dialógové okno (nezávisle od, či šablóna určuje štýl WS_VISIBLE), zakáže vlastník okno a začína svoju správu nabíjaciu stanicu na získanie a odoslanie správy o dialógovom okne.
Keď dialógové okno pole postup zavolá funkciu EndDialog , DialogBoxIndirect ničí dialógového okna, končí správy slučky, umožňuje vlastníkom okno (ak je už zapnutý) a vráti hodnotu parametra nResult špecifikuje dialógové okno pole postup pri volaní EndDialog.
Štandardné dialógové okno pole Šablóna, zblížiť DLGTEMPLATE štruktúra a každá z DLGITEMTEMPLATE štruktúry DWORD s hranicami. Vytvorenie údajov pole, ktoré takto DLGITEMTEMPLATE konštrukcie musia byť zarovnané na hranicu DWORD . Všetky ostatné polia premenlivej dĺžky v šablóne musí musia byť zoradené slovo hranice.
Šablónu políčka rozšírený dialóg zblížiť DLGTEMPLATEEX hlavičky a každej ovládanie definície DLGITEMTEMPLATEEX DWORD s hranicami. Vytvorenie údajov poľa, ak nejaké sú, ktoré nasleduje DLGITEMTEMPLATEEX štruktúra musí tiež zosúladené na hranicu DWORD . Všetky ostatné polia premenlivej dĺžky v šablóne zblížiť slovo hranicami.
Všetky znakových reťazcov v dialógovom okne blok šablóny, napríklad názvy pre dialógové okno a tlačidlá, musí byť reťazcov Unicode. Na vytvorenie kódu, ktorý pracuje na Windows a Windows NT, použite MultiByteToWideChar funkciu na generovanie týchto reťazcov Unicode.
Systém Windows 95 a novší:Systém môže podporovať maximálne 255 ovládacie prvky dialógového okna pole šablónu. Ak chcete umiestniť viac ako 255 ovládacie prvky v dialógovom okne, vytvoriť ovládacie prvky v WM_INITDIALOG manipulátor hlásení skôr ako umiestnenie v šablóne.
Windows CE: Nie všetky štýly sú podporované v štruktúre DLGTEMPLATE v dialógovom okne Šablóny uvedené parametra lpTemplate .
nbsp; Systém Windows &NT: vyžaduje verzia 3.1 alebo novšia.
Windows:Vyžaduje systém Windows 95 alebo novším.
Windows CE:Vyžaduje verziu 1.0 alebo novšiu verziu.
Hlavičky:Deklarovaný v súbore winuser.h.
Importovať knižnica:Použiť user32.lib.
Unicode:Implementovaný ako Unicode, ANSI verzia v systéme Windows NT.
Dialógové okná prehľad, dialógové okno pole funkcie, CreateWindowEx, DialogBox, DialogBoxIndirectParam, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT