CreateDialogIndirectParam

הפונקציה CreateDialogIndirectParam יוצר תיבת הדו-שיח modeless מתבנית תיבת הדו-שיח בזיכרון. לפני הצגת תיבת הדו-שיח, הפונקציה עוברת ערך המוגדר על-ידי יישום הנוהל תיבת הדו-שיח כפרמטר lParam ההודעה WM_INITDIALOG . יישום להשתמש בערך זה כדי לאתחל פקדי תיבת הדו-שיח.

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

פרמטרים

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

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

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

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

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

להחזיר ערכים

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

אם הפעולה תיכשל, הערך המוחזר הוא NULL. כדי לקבל מידע שגיאות מורחב, לקרוא GetLastError.

הערות

הפונקציה CreateDialogIndirectParam משתמשת בפונקציה CreateWindowEx כדי ליצור את תיבת הדו-שיח. CreateDialogIndirectParam לאחר מכן שולח הודעה WM_INITDIALOG הפרוצדורה של תיבת הדו-שיח. אם התבנית מציין את סגנון DS_SETFONT, הפונקציה גם שולח הודעה WM_SETFONT הפרוצדורה של תיבת הדו-שיח. הפונקציה מציגה את תיבת הדו-שיח אם התבנית מציין את סגנון WS_VISIBLE. לבסוף, CreateDialogIndirectParam מחזיר את נקודת האחיזה של חלון אל תיבת הדו-שיח.

לאחר CreateDialogIndirectParam מחזיר, באפשרותך להשתמש בפונקציה מסוג 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: תיבות דו-שיח מחוץ לאזור הגלוי של המסך לא ממקם מחדש באופן אוטומטי.

אם המשתמש מקיש ALT + H ואילו בתיבת הדו-שיח יש מוקד הקלט, המערכת הצבות הודעה WM_HELP הפרוצדורה תיבת דו-שיח. יישום צריך להגיב להודעה זו על-ידי הצגת עזרה תלויית הקשר עבור תיבת הדו-שיח.

בסגנונות הבאים אינם נתמכים עבור חבר סגנון של מבנה DLGTEMPLATE :

כדי לקבל את מיקום ברירת המחדל, השתמש בסגנון DS_CENTER.

אם סגנון WS_CHILD לא צוין, נעשה שימוש בסגנון WS_POPUP.

QuickInfo

nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.
Unicode:מיושם על גירסאות Unicode ו- ANSI ב- Windows NT.

ראה גם

סקירה כללית של תיבות הדו-שיח, פונקציות של תיבת הדו-שיח, CreateDialog, CreateDialogIndirect, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, מסוג ShowWindow, WM_INITDIALOG, WM_SETFONT

Index