Funcția CreateDialogIndirectParam creează o casetă de dialog fără mod dintr-un șablon de caseta de dialog în memorie. Înainte de afișarea casetei de dialog, funcția trece o valoare definită de aplicarea procedurii de caseta de dialog ca parametrul lParam mesaj WM_INITDIALOG . Cererea poate folosi această valoare să inițializeze controalele casetă de dialog.
(HWND CreateDialogIndirectParam HINSTANCE hInstance, / / ocupa de instanta applicationLPCDLGTEMPLATElpTemplate, / / indicatorul pentru a dialog box șablonHWNDhWndParent, / / ocupa proprietarul fereastraDLGPROClpDialogFunc, / / indicatorul pentru a dialog box proceduraLPARAMlParamInit / / inițializare valoarea);
Într-un șablon standard, antetul este o structură DLGTEMPLATE urmat de matrice suplimentare de lungime variabilă. Datele pentru fiecare control dintr-o structură DLGITEMTEMPLATE urmat de matrice de lungime variabilă suplimentare.
Într-un șablon de caseta de dialog extins, antetul utilizează formatul DLGTEMPLATEEX ?i defini?iile control utilizează formatul DLGITEMTEMPLATEEX.
După ce CreateDialogIndirectParam se întoarce, puteți liber șablonul, care este folosit doar pentru a obține caseta de dialog a început.
Dacă funcția reușește, valoarea returnată este ghidajul ferestrei pentru a caseta de dialog.
Dacă funcția nu reușește, valoarea returnată este NULL. Pentru a obține extins informa?ii eroare, apel GetLastError.
Funcția de CreateDialogIndirectParam utilizează funcția CreateWindowEx pentru a crea caseta de dialog. CreateDialogIndirectParam trimite un mesaj WM_INITDIALOG la procedura de caseta de dialog. Dacă șablonul specifică stilul DS_SETFONT, funcția trimite, de asemenea, un mesaj WM_SETFONT la procedura de caseta de dialog. Funcția afișează caseta de dialog dacă șablonul specifică stilul WS_VISIBLE. În cele din urmă, CreateDialogIndirectParam se întoarce ghidajul fereastra în caseta de dialog.
După întoarcerea în CreateDialogIndirectParam , utilizați funcția ShowWindow pentru a afișa caseta de dialog (dacă nu este deja vizibil). Pentru a distruge caseta de dialog, utilizați funcția DestroyWindow.
Într-un șablon de caseta de standard dialog, structura DLGTEMPLATE ?i fiecare dintre structurile DLGITEMTEMPLATE trebuie aliniat la limitele DWORD . Crearea de date array care urmează o structură DLGITEMTEMPLATE trebuie, de asemenea, aliniat la o limită de DWORD . Toate alte matrice lungime variabilă în șablonul trebuie trebuie aliniat la limitele WORD.
Într-un șablon de caseta de dialog extins, antetul DLGTEMPLATEEX și fiecare dintre defini?iile DLGITEMTEMPLATEEX control trebuie aliniat la limitele DWORD . Crearea date matrice, în cazul în care orice, care urmează o structură DLGITEMTEMPLATEEX , de asemenea, trebuie să se alinieze la o limită de DWORD . Toate alte matrice lungime variabilă în șablonul trebuie aliniat la limitele WORD.
Toate șirurile de caractere în șablonul de caseta de dialog, cum ar fi titluri pentru caseta de dialog și butoane, trebuie să fie siruri de caractere Unicode. Pentru a crea cod care funcționează atât pe Windows și Windows NT, funcția MultiByteToWideChar pentru a genera aceste siruri de caractere Unicode.
Windows 95 și mai târziu:Sistemul poate suporta un maximum de 255 controale pe șablon caseta de dialog. Pentru a plasa mai mult de 255 de controalele din caseta de dialog, crea controale în WM_INITDIALOG mesaj mîner, mai degrabă decât introducerea-le în șablonul.
Windows CE: Casetele de dialog în afara zonei vizibile a ecranului nu sunt repoziționate automat.
Dacă utilizatorul apasă ALT + H, în timp ce caseta de dialog are focalizarea intrare, sistemul posturi un mesaj WM_HELP pentru regimul de dialog. Cererea trebuie să răspundă la acest mesaj de afișarea ajutorului contextual pentru caseta de dialog.
Următoarele stiluri nu sunt acceptate pentru membru stil structura DLGTEMPLATE :
Pentru a obține poziționării implicite, utilizați stilul DS_CENTER.
Dacă stilul WS_CHILD nu este specificat, se presupune că stilul WS_POPUP.
nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.
Unicode:Pus în aplicare ca Unicode și ANSI versiuni Windows NT.
Prezentare generală a casete de dialog, funcții caseta de Dialog, CreateDialog, CreateDialogIndirect, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, , MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT