הכללית ביצירת חלוקה למחלקות משנה

כדי באופן גלובלי לתתי מחלקת חלון, היישום חייב להיות נקודת אחיזה לחלון של המחלקה. היישום צריך גם את נקודת האחיזה כדי להסיר את מחלקת משנה. כדי לקבל את נקודת האחיזה, יישום בדרך כלל יוצר חלון נסתר של המחלקה כדי להיות subclassed. לאחר קבלת נקודת האחיזה, היישום קורא את הפונקציה SetClassLong , ציון נקודת האחיזה, את הדגל GCL_WNDPROC את הכתובת של ההליך מחלקת משנה. SetClassLong מחזירה את הכתובת של ההליך החלון המקורי עבור המחלקה.

כתובת ההליך המקורי של החלון נמצא בשימוש כללי ביצירת חלוקה למחלקות משנה באותה דרך שבה מופע ביצירת חלוקה למחלקות משנה. ההליך לתתי מעביר הודעות הנוהל החלון המקורי על-ידי קריאה CallWindowProc. היישום מסיר לתתי מהמחלקה חלון על-ידי הקורא SetClassLong שוב, ציון הכתובת של ההליך המקורי של החלון, את הדגל GCL_WNDPROC את נקודת האחיזה כדי חלון של המחלקה להיות subclassed. יישום כי באופן כללי מחלקות מחלקה שליטה עליך להסיר את מחלקת משנה סיום פעולת היישום; אחרת, ייתכן שתקבל הודעת שגיאה בלתי הפיכה במערכת.

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

Index