הפונקציה CallWindowProc העברת מידע ההודעה ההליך שצוין חלון.
(LRESULT CallWindowProc WNDPROC lpPrevWndFunc, / / מצביע בהליך הקודםHWNDhWnd, / / לטפל לחלוןUINTMsg, // messageWPARAMwParam, / / תחילה הודעה פרמטרLPARAMlParam / / שניה פרמטר הודעה);
אם ערך זה מתקבל על-ידי קריאה לפונקציה GetWindowLong עם הפרמטר nIndex GWL_WNDPROC או DWL_DLGPROC, הוא למעשה אחד את הכתובת של חלון או שגרה תיבת הדו-שיח, או נקודת אחיזה המייצגת כתובת זו.
הערך המוחזר מציין את התוצאה של עיבוד ההודעה ותלוי להודעה שנשלחה.
השתמש בפונקציה CallWindowProc עבור חלון ביצירת חלוקה למחלקות משנה. בדרך כלל, כל החלונות עם מחלקת אותה לשתף בהליך חלון אחד. מחלקת משנה הוא חלון או קבוצה של windows עם המחלקה באותה שאת הודעותיו להיקלט, עיבוד על-ידי שגרה חלון אחרת (או פרוצדורות) לפני המועברים אל השגרה חלון של המחלקה.
הפונקציה SetWindowLong יוצרת את מחלקת משנה על-ידי שינוי את שגרת חלון המקושרת עם חלון מסוים, גורם לקרוא לפרוצדורה חלון חדש במקום הקודם של המערכת. יישום חייב לעבור כל ההודעות לא לעבד ההליך חלון חדש בהליך החלון הקודם על-ידי קריאה CallWindowProc. פעולה זו מאפשרת את היישום ליצור שרשרת של הליכים חלון.
אם הגדרת מחמיר, הפרמטר lpPrevWndFunc יש סוג נתונים WNDPROC. סוג WNDPROC הצהיר כדלקמן
LRESULT (התקשרות חזרה * WNDPROC) (HWND / UINT, WPARAM, LPARAM)
אם לא מוגדרת מחמיר הפרמטר lpPrevWndFunc יש סוג נתונים FARPROC. סוג FARPROC הצהיר כדלקמן
int (עד WINAPI * FARPROC))
C, ההצהרה FARPROC מציין פונקציית התקשרות חזרה הכוללת רשימת של פרמטר שלא צוין. ב- C++, עם זאת, רשימת הפרמטרים ריק בהצהרה מציין כי פונקציה ללא פרמטרים. הבחנה זו עדין יכול לשבור קוד. להלן דרך אחת להתמודד עם מצב זה:
#ifdef MyWindowProcedure WNDPROC קפדנית # אחר FARPROC MyWindowProcedure #endif... lResult = CallWindowProc (MyWindowProcedure,...)
לקבלת מידע נוסף אודות פונקציות שהוצהרו עם רשימות ארגומנטים ריקים, עיין שפת תכנות C++, מהדורה שנייה, על-ידי Bjarne Stroustrup.
Windows NT: הפונקציה CallWindowProc מטפל המרה ב- Unicode ל- ANSI. אין אפשרות לנצל את היתרונות של המרה זו אם אתה קורא את ההליך חלון ישירות.
nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.
Unicode:מיושם על גירסאות Unicode ו- ANSI ב- Windows NT.
מבט כולל על ההליכים חלון, חלון הליך פונקציות, GetWindowLong, SetClassLong, SetWindowLong