CreateDialogIndirect

המאקרו CreateDialogIndirect יוצר תיבת הדו-שיח modeless מתבנית תיבת הדו-שיח בזיכרון. המאקרו CreateDialogIndirect משתמשת בפונקציה CreateDialogIndirectParam.

(HWND CreateDialogIndirect HINSTANCE  hInstance, / / לטפל מופע היישוםLPCDLGTEMPLATElpTemplate, / / תיבת המצביע אל תיבת הדו-שיח תבניתHWNDhWndParent, / / לטפל לחלון הבעליםDLGPROClpDialogFunc / / המצביע אל תיבת הדו-שיח תיבת שגרה);
 

פרמטרים

hInstance
מזהה המופע של המודול יוצר תיבת הדו-שיח.
lpTemplate
מצביע לאובייקט זיכרון גלובלי הכולל בתבנית המשתמשת ב- CreateDialogIndirect כדי ליצור את תיבת הדו-שיח. תבנית בתיבת הדו-שיח מכילה כותרת המתארת את תיבת הדו-שיח, ואחריו בלוקים נוסף אחד או יותר של נתונים המתארים את כל אחד מהפקדים בתיבת הדו-שיח. התבנית להשתמש תבנית סטנדרטית או עיצוב מורחב.

תבנית רגילה, הכותרת היא מבנה DLGTEMPLATE ואחריו מערכי באורך משתנה נוספים. הנתונים עבור כל פקד מורכב מבנה DLGITEMTEMPLATE ואחריו מערכי באורך משתנה נוספים.

בתבנית תיבת הדו-שיח מורחבת, הכותרת משתמש בתבנית DLGTEMPLATEEX ואת הגדרות פקד להשתמש בתבנית DLGITEMTEMPLATEEX.

לאחר CreateDialogIndirect מחזיר, באפשרותך לפנות את התבנית, המשמש רק מקבל את תיבת הדו-שיח התחיל.

hWndParent
מזהה את החלון שבבעלותה בתיבת הדו-שיח.
lpDialogFunc
מצביע לשגרה בתיבת הדו-שיח. לקבלת מידע נוסף אודות ההליך בתיבת הדו-שיח, עיין DialogProc.

להחזיר ערכים

אם הפונקציה מצליחה, הערך המוחזר הוא נקודת האחיזה חלון אל תיבת הדו-שיח.

אם הפעולה תיכשל, הערך המוחזר הוא 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 .

QuickInfo

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

Index