הפונקציה SetWindowLong משתנה תכונה של החלון שצוין. הפונקציה גם קביעת ערך של 32 סיביות (ארוך) בחלק ההיסט שצוין לזיכרון חלון נוסף של חלון.
(SetWindowLong ארוך HWND hWnd, / / לטפל של חלוןintnIndex, / / ההיסט של ערך לקביעתארוךdwNewLong / / חדשים בערך);
| ערך | פעולה |
|---|---|
| GWL_EXSTYLE | מגדיר חדש מורחב סגנון חלון. |
| GWL_STYLE | הגדרת סגנון חלון חדש. |
| GWL_WNDPROC | קביעת כתובת חדשה עבור הפרוצדורה של חלון. |
| GWL_HINSTANCE | קביעת נקודת אחיזה מופע חדש של יישום. |
| GWL_ID | הגדרת מזהה חדש של חלון. |
| GWL_USERDATA | קובע את הערך של 32 סיביות המשויך החלון. לכל חלון יש ערך 32 סיביות תואם מיועד לשימוש על-ידי היישום שיצר את החלון. |
הערכים הבאים זמינים גם כאשר הפרמטר hWnd מזהה תיבת דו-שיח:
| ערך | פעולה |
|---|---|
| DWL_DLGPROC | מגדיר את הכתובת החדשה של הפרוצדורה תיבת הדו-שיח. |
| DWL_MSGRESULT | מגדיר את ערך ההחזרה של הודעה מעובד בהליך תיבת הדו-שיח. |
| DWL_USER | הגדרת מידע נוסף חדשות שלא כפרטי ליישום, כגון נקודות אחיזה או מצביעים. |
אם הפונקציה מצליחה, הערך המוחזר הוא הערך הקודם של מספר שלם של 32 סיביות שצוין.
אם הפעולה תיכשל, הערך המוחזר הוא אפס. כדי לקבל מידע שגיאות מורחב, לקרוא GetLastError.
אם הערך הקודם של מספר שלם של 32 סיביות שצוין הוא אפס, הפונקציה מצליחה, הערך המוחזר הוא אפס, אך הפונקציה אינה מנקה את מידע השגיאה האחרונה. דבר זה הופך קשה לקבוע הצלחה או כישלון. כדי להתמודד עם הבעיה, עליך לנקות את מידע השגיאה האחרון על-ידי קריאה SetLastError(0) לפני הקריאה SetWindowLong. לאחר מכן, הפונקציה כשל יצויין על ידי ערך ההחזרה של אפס, תוצאה GetLastError שאינו אפס.
הפונקציה SetWindowLong נכשל אם החלון שצוין על-ידי הפרמטר hWnd אינו שייך תהליך זהה הליך המשנה של הקורא.
במטמון נתונים מסוימים חלון, כך שינויים שמבוצעים באמצעות SetWindowLong לא ייכנסו לתוקף עד לפונקציה SetWindowPos.
אם תשתמש SetWindowLong עם האינדקס GWL_WNDPROC כדי להחליף את ההליך חלון, ההליך חלון חייב לציית להנחיות המפורטות בתיאור של פונקציית התקשרות חזרה של WindowProc.
אם אתה משתמש SetWindowLong עם האינדקס DWL_MSGRESULT כדי להגדיר את ערך ההחזרה עבור הודעה המעובד על-ידי שגרה דו-שיח, באפשרותך לחזור TRUE ישירות אחר כך. אחרת, אם תקרא כל פונקציה שתוצאתו שלך הליך הדו-שיח קבלת הודעת חלון, ההודעה חלון מקוננים עלולה להחליף את ערך ההחזרה שבאפשרותך להגדיר באמצעות DWL_MSGRESULT.
קריאה SetWindowLong עם האינדקס GWL_WNDPROC יוצר עם מחלקת המשנה של מחלקת חלון נעשה שימוש כדי ליצור את החלון. יישום יכול לתתי מחלקת מערכת, אבל צריך לא לתתי מחלקת חלון שנוצרו על-ידי תהליך אחר. הפונקציה SetWindowLong יוצרת לתתי חלון על-ידי שינוי ההליך חלון המשויכת למחלקה חלון מסוים, גורם לקרוא לפרוצדורה חלון חדש במקום הקודם של המערכת. יישום חייב לעבור כל ההודעות לא לעבד ההליך חלון חדש בהליך החלון הקודם על-ידי קריאה CallWindowProc. פעולה זו מאפשרת את היישום ליצור שרשרת של הליכים חלון.
שמירת זיכרון נוסף חלון על-ידי ציון ערך שאינו אפס חבר cbWndExtra של מבנה WNDCLASSEX בהם משתמשים עם הפונקציה RegisterClassEx.
לא, עליך לקרוא SetWindowLong עם האינדקס GWL_HWNDPARENT לשינוי האב של חלון צאצא. במקום זאת, השתמש בפונקציה SetParent.
חלונות CE: הפרמטר nIndex חייב להיות כפולה של 4 בתים.
גישה unaligned אינו נתמך.
ערכי פרמטר nIndex הבאים אינם נתמכים:
GWL_HINSTANCE
GWL_HWNDPARENT
GWL_USERDATA
בגירסאות Windows CE 2.0 או גירסה מתקדמת יותר תומך בערך DWL_DLGPROC בפרמטר nIndex , אך Windows CE 1.0 לא.
nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.
Unicode:מיושם על גירסאות Unicode ו- ANSI ב- Windows NT.
מבט כולל על מחלקות חלון, פונקציות המחלקה חלון, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX