המבנה DLGTEMPLATEEX אינו מוגדר בקובץ הכותרת רגיל כלשהו. הגדרת מבנה ניתנת כאן כדי להסביר את העיצוב של תבנית מורחבת עבור תיבת דו-שיח.
תבנית בתיבת הדו-שיח מורחבת של מתחיל עם כותרת עליונה DLGTEMPLATEEX מתאר את תיבת הדו-שיח ומציין את מספר פקדים בתיבת הדו-שיח. עבור כל פקד בתיבת דו-שיח, יש תבנית בתיבת הדו-שיח מורחבת של בלוק נתונים המשתמשת בתבנית DLGITEMTEMPLATEEX כדי לתאר את הפקד.
typedef struct {מילה dlgVer; WORD חתימה; DWORD helpID; DWORD exStyle; סגנון DWORD; המילה cDlgItems; x קצרה; y קצרה; cx קצרה; cy קצרה; תפריט sz_Or_Ord; / / שם או הסודר של משאב תפריט sz_Or_Ord windowClass; / / שם או מספר סידורי ממין של מחלקת חלון כותרת WCHAR [titleLen]; / / כותרת מחרוזת של תיבת הדו-שיח pointsize קצרה; / / רק אם הדגל DS_SETFONT מוגדר משקל קצרה; / / רק אם הדגל DS_SETFONT מוגדר bItalic קצרה; / / רק אם הדגל DS_SETFONT מוגדר גופן WCHAR [fontLen]; / / שם גופן, אם מוגדר DS_SETFONT } DLGTEMPLATEEX
| ערך | משמעות |
|---|---|
| DS_3DLOOK | מעניקה תיבת הדו-שיח גופן nonbold, ציור תלת-הגבולות סביב הפקד windows בתיבת הדו-שיח. הסגנון DS_3DLOOK נדרש רק על-ידי יישומים מבוססי-Win32 להדר עבור המערכת בגירסאות הקודמות ל- Windows 95 או Windows NT 4.0. המערכת מחיל באופן אוטומטי את מראה תלת-ממדי על תיבות דו-שיח שנוצרו על-ידי יישומים הידור עבור גירסאות נוכחיות של המערכת. |
| DS_ABSALIGN | מציין הקואורדינטות של תיבת הדו-שיח הן קואורדינטות מסך. אם לא צוין סגנון זה, המערכת מתייחסת אותם בתור לקוח קואורדינטות. |
| DS_CENTER | מרכזים את תיבת הדו-שיח באזור העבודה; כלומר, האזור לא יוסתר על-ידי המגש. |
| DS_CENTERMOUSE | מרכזים את סמן העכבר בתיבת הדו-שיח. |
| DS_CONTEXTHELP | כולל סימן שאלה בפס הכותרת של תיבת הדו-שיח. כאשר המשתמש לוחץ על סימן השאלה, שהסמן יהפוך לסימן שאלה עם מצביע. אם לאחר מכן, המשתמש לוחץ על פקד בתיבת הדו-שיח, הפקד מקבל הודעה WM_HELP. הפקד עליו להעביר את ההודעה על הפרוצדורה תיבת דו-שיח, יש מכנים הפונקציה WinHelp באמצעות הפקודה HELP_WM_HELP. מציג יישום עזרה של חלון מוקפץ המכיל בדרך כלל עזרה עבור הפקד. שים לב כי DS_CONTEXTHELP הוא מציין מיקום בלבד. כאשר תיבת הדו-שיח נוצר, המערכת בודקת DS_CONTEXTHELP ומוסיף, אם הוא שם, WS_EX_CONTEXTHELP לסגנון מורחבת של תיבת הדו-שיח. לא ניתן להשתמש בסגנון WS_EX_CONTEXTHELP באמצעות סגנונות WS_MAXIMIZEBOX או WS_MINIMIZEBOX. |
| DS_CONTROL | יוצר תיבת דו-שיח שעובדת היטב בתור חלון צאצא של תיבת דו-שיח נוספת, כמו עמוד בגליון המאפיינים. סגנון זה מאפשר למשתמש לשונית בין windows פקד של תיבת דו-שיח הילד, השתמש במקשי האצה שלה, וכן הלאה. |
| DS_FIXEDSYS | גורמת לפתיחת תיבת הדו-שיח SYSTEM_FIXED_FONT את במקום ברירת המחדל SYSTEM_FONT. SYSTEM_FIXED_FONT הוא גופן רוחב קבוע תואם גופן המערכת בגירסאות Windows שקדמו ל- 3.0. |
| DS_LOCALEDIT | חל על יישומי 16 סיביות בלבד. סגנון זה מנחה את פקדי עריכה בתיבת הדו-שיח כדי להקצות זיכרון מתוך יחידת נתונים של היישום. אחרת, עריכת פקדים להקצות אחסון מאובייקט זיכרון גלובלי. |
| DS_MODALFRAME | יוצר תיבת דו-שיח עם מסגרת תיבת דו-שיח מודאלית אותם ניתן לשלב עם שורת כותרת ותפריט מערכת על-ידי ציון את WS_CAPTION ואת WS_SYSMENU סגנונות. |
| DS_NOFAILCREATE | Windows 95: יוצר תיבת הדו-שיח גם אם מתרחשות שגיאות — לדוגמה, אם אין אפשרות ליצור חלון צאצא או אם המערכת אין אפשרות ליצור מקטע נתונים מיוחדים עבור פקד עריכה. |
| DS_NOIDLEMSG | העלמת הודעות WM_ENTERIDLE המערכת ישלח אחרת לבעלים של תיבת הדו-שיח כאשר מוצגת תיבת הדו-שיח. |
| DS_SETFONT | מציין הכותרת DLGTEMPLATEEX של התבנית בתיבת הדו-שיח מורחבת מכיל ארבעה חברים נוספים (pointsize, משקל, bItalicוגופן)המתארים את הגופן שישמש עבור הטקסט לאזור הלקוח ופקדים של תיבת הדו-שיח. במידת האפשר, המערכת יוצרת גופן בהתאם לערכים המצוינים חברים אלה. מכן המערכת מעבירה את נקודת האחיזה של הגופן בתיבת הדו-שיח ולחץ על כל פקד על ידי שליחת הודעה WM_SETFONT. אם סגנון זה לא צוין, התבנית בתיבת הדו-שיח מורחבת אינה כוללת את החברים pointsize, משקל, bItalicוגופן. |
| DS_SETFOREGROUND | גורמת למערכת להשתמש בפונקציה SetForegroundWindow כדי להצגת תיבת הדו-שיח בקידמה. |
| DS_SYSMODAL | סגנון זה מיושנת ואינה נכללת עבור תאימות עם גירסאות קודמות של Windows. אם תציין סגנון זה, המערכת יוצרת תיבת הדו-שיח בסגנון WS_EX_TOPMOST. אל תשלבו סגנון זה בסגנון DS_CONTROL. |
באפשרותך להשתמש תבנית בתיבת הדו-שיח מורחבת במקום תבנית בתיבת הדו-שיח הרגילה בפונקציות CreateDialogIndirectParam ו- DialogBoxIndirectParam ופקודות מאקרו CreateDialogIndirect ו- DialogBoxIndirect . תבנית בתיבת הדו-שיח הרגילה משתמשת DLGTEMPLATE ומבני DLGITEMTEMPLATE.
בעקבות הכותרת DLGTEMPLATEEX בתבנית תיבת הדו-שיח מורחבת היא אחד או יותר מבני DLGITEMTEMPLATEEX המתארים את הפקדים בתיבת הדו-שיח. חבר cDlgItems מציין את מספר מבנים DLGITEMTEMPLATEEX בתבנית.
כל מבנה DLGITEMTEMPLATEEX בתבנית עליך ליישר על גבול DWORD . אם חבר סגנון מציין את סגנון DS_SETFONT, מבנה DLGITEMTEMPLATEEX הראשון מתחיל על גבול ה-DWORD הראשון אחרי המחרוזת גופן . אם לא צוין DS_SETFONT, המבנה הראשון מתחיל על גבול ה-DWORD הראשון לאחר מחרוזת הכותרת.
תפריט, windowClass, כותרתומערכים גופן חייב להיות מיושרים ב- WORD גבולות.
אם ברצונך לציין מחרוזות תווים את התפריט, את windowClass, את הכותרתואת גופן מערכים, עליך להשתמש במחרוזות Unicode. כדי ליצור קוד הפועל ב- Windows ו- Windows NT, השתמש בפונקציה MultiByteToWideChar כדי ליצור מחרוזות Unicode אלה.
חברי x, y, cxו cy לציין ערכים ביחידות של תיבת הדו-שיח. באפשרותך להמיר ערכים אלה יחידות מסך (פיקסלים) באמצעות הפונקציה MapDialogRect.
nbsp; Windows &NT: מחייב גירסה 3.51 ואילך.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:לא נתמך.
סקירה כללית של תיבות הדו-שיח, מבנים של תיבת הדו-שיח, CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT