יצירת מסגרת חלונות צאצאים

לאחר הרישום שלו מחלקות חלון, יישום MDI ליצור חלונות שלו. ראשית, הוא יוצר מסגרת החלון שלו על-ידי שימוש בפונקציה של createwindow ליצירת או CreateWindowEx . לאחר יצירת מסגרת החלון שלו, היישום יוצר את החלון הלקוח שלו, שוב באמצעות של createwindow ליצירת או CreateWindowEx. היישום יש לציין MDICLIENT כשם המחלקה של החלון לקוח; MDICLIENT היא מחלקת חלון preregistered שהוגדרו על-ידי המערכת. הפרמטר lpvParam של createwindow ליצירת או CreateWindowEx אמור להפנות מבנה CLIENTCREATESTRUCT . מבנה זה מכיל את החברים המתוארות בטבלה הבאה:

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

כאשר הכותרת של חלון צאצא נוסף תפריט החלון , המערכת מקצה מזהה חלון הצאצא. כאשר המשתמש לוחץ על הכותרת של חלון צאצא, החלון מסגרת מקבל הודעה WM_COMMAND עם המזהה הפרמטר wParam . עליך לציין ערך עבור חבר idFirstChild אשר אינו מתנגש עם מזהי פריט תפריט בתפריט של מסגרת החלון.

של multipad מסגרת חלון הליך יוצר את חלון MDI של הלקוח בעת עיבוד הודעת WM_CREATE . הדוגמה הבאה מציגה כיצד נוצר חלון לקוח.

מקרה WM_CRE&ATE: {CLIENTCREATESTRUCT ccs; 
 
        / / לאחזר את נקודת האחיזה כדי בתפריט חלון ולהקצות / / הראשון מזהה חלון צאצא. 
 
        ccs.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        ccs.idFirstChild = IDM_WINDOWCHILD; 
 
        / / ליצור את חלון MDI של הלקוח. 
 
        hwndMDIClient = של createwindow ליצירת ("MDICLIENT", (LPCTSTR) NULL, WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 0, 0, 0, 0, hwnd, (HMENU) 0xCAC, hInst, כח (כלי שירות); ccs); 
 
        מסוג ShowWindow (hwndMDIClient, SW_SHOW); 
    } מעבר 

 

הכותרות של חלונות צאצאים נוספים בתחתית תפריט החלון . אם היישום יוסיף מחרוזות בתפריט חלון על-ידי שימוש בפונקציה AppendMenu , מחרוזות אלה שניתן להחליף את הכותרות של חלונות צאצא כאשר תפריט החלון הוא נצבע מחדש (בכל פעם חלון צאצא נוצר או נהרס). יישום MDI המוסיף מחרוזות תפריט החלון שלו צריך להשתמש בפונקציה InsertMenu ולוודא הכותרות של חלונות צאצא לא להיות מוחלפות מחרוזות חדשות אלה.

השתמש בסגנון WS_CLIPCHILDREN כדי ליצור את חלון MDI של הלקוח כדי למנוע את החלון הציור מעל חלונות צאצא שלו.

Index