המאקרו CreateDialogIndirect יוצר תיבת הדו-שיח modeless מתבנית תיבת הדו-שיח בזיכרון. המאקרו CreateDialogIndirect משתמשת בפונקציה CreateDialogIndirectParam.
(HWND CreateDialogIndirect HINSTANCE hInstance, / / לטפל מופע היישוםLPCDLGTEMPLATElpTemplate, / / תיבת המצביע אל תיבת הדו-שיח תבניתHWNDhWndParent, / / לטפל לחלון הבעליםDLGPROClpDialogFunc / / המצביע אל תיבת הדו-שיח תיבת שגרה);
תבנית רגילה, הכותרת היא מבנה DLGTEMPLATE ואחריו מערכי באורך משתנה נוספים. הנתונים עבור כל פקד מורכב מבנה DLGITEMTEMPLATE ואחריו מערכי באורך משתנה נוספים.
בתבנית תיבת הדו-שיח מורחבת, הכותרת משתמש בתבנית DLGTEMPLATEEX ואת הגדרות פקד להשתמש בתבנית DLGITEMTEMPLATEEX.
לאחר CreateDialogIndirect מחזיר, באפשרותך לפנות את התבנית, המשמש רק מקבל את תיבת הדו-שיח התחיל.
אם הפונקציה מצליחה, הערך המוחזר הוא נקודת האחיזה חלון אל תיבת הדו-שיח.
אם הפעולה תיכשל, הערך המוחזר הוא NULL. כדי לקבל מידע שגיאות מורחב, לקרוא GetLastError.
המאקרו CreateDialogIndirect משתמשת בפונקציה CreateWindowEx כדי ליצור את תיבת הדו-שיח. CreateDialogIndirect לאחר מכן שולח הודעה WM_INITDIALOG הפרוצדורה של תיבת הדו-שיח. אם התבנית מציין את סגנון DS_SETFONT, הפונקציה גם שולח הודעה WM_SETFONT הפרוצדורה של תיבת הדו-שיח. הפונקציה מציגה את תיבת הדו-שיח אם התבנית מציין את סגנון WS_VISIBLE. לבסוף, CreateDialogIndirect מחזיר את נקודת האחיזה של חלון אל תיבת הדו-שיח.
לאחר CreateDialogIndirect מחזיר, באפשרותך להשתמש בפונקציה מסוג ShowWindow כדי להציג את תיבת הדו-שיח (אם היא עדיין לא נראה לעין). כדי להרוס את תיבת הדו-שיח, השתמש בפונקציה DestroyWindow.
בתבנית תיבת הדו-שיח הרגילה, המבנה DLGTEMPLATE וכל אחת מבני DLGITEMTEMPLATE יש ליישר על גבולות DWORD . עליך גם ליישר את מערך נתונים יצירה שבאה מבנה DLGITEMTEMPLATE על גבול DWORD . כל המערכים באורך משתנה אחרים בתבנית חייב חייב להיות מיושרים ב- WORD גבולות.
בתבנית תיבת הדו-שיח מורחבת, את הכותרת העליונה של DLGTEMPLATEEX ואת כל הגדרות בקרת DLGITEMTEMPLATEEX עליך ליישר על גבולות DWORD . יצירת נתונים המערך, אם בכלל, אחרי מבנה DLGITEMTEMPLATEEX חייב גם להיות מיושרים על גבול DWORD . כל המערכים באורך משתנה אחרים בתבנית עליך מיושר על גבולות מילה.
מחרוזות תווים כל תבנית בתיבת הדו-שיח, כגון כותרות עבור תיבת הדו-שיח ולחצנים, חייב להיות מחרוזות Unicode. כדי ליצור קוד הפועל ב- Windows ו- Windows NT, השתמש בפונקציה MultiByteToWideChar כדי ליצור מחרוזות Unicode אלה.
Windows 95 ואילך:המערכת יכול לתמוך מרבי של 255 פקדים לכל תבנית בתיבת הדו-שיח. כדי למקם פקדים יותר מ- 255 בתיבת דו-שיח, צור את הפקדים במטפל בהודעות WM_INITDIALOG במקום להציבם בתבנית.
חלונות CE: לא כל סגנונות נתמכים במבנה DLGTEMPLATE בתבנית הדו-שיח המכונה על-ידי הפרמטר lpTemplate .
nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.
Unicode:מיושם על גירסאות Unicode ו- ANSI ב- Windows NT.
סקירה כללית של תיבות הדו-שיח, פונקציות של תיבת הדו-שיח, CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, מסוג ShowWindow, WM_INITDIALOG, WM_SETFONT