DeferWindowPos

הפונקציה DeferWindowPos מעדכן שצוין מרובה-החלון – מיקום המבנה עבור החלון שצוין. לאחר מכן, הפונקציה מחזירה נקודת אחיזה במבנה מעודכן. הפונקציה EndDeferWindowPos משתמש במידע במבנה זה כדי לשנות את המיקום והגודל של מספר חלונות בו זמנית. הפונקציה BeginDeferWindowPos יוצר את מבנה.

(HDWP DeferWindowPos HDWP  hWinPosInfo, / / לטפל במבנה פנימיHWNDhWnd, / / לטפל לחלון כדי למקםHWNDhWndInsertAfter, / / לטפל מיקום-לפי הזמנהint x, / / אופקי מיקום int y, / האנכיות / מיקום int cx, // width int cy, // heightUINTuFlags / / מסמן מיקום חלון);
 

פרמטרים

hWinPosInfo
לטפל מרובה-חלון – מבנה המיקום המכיל מידע גודל ומיקום עבור windows אחד או יותר. מבנה זה מוחזר על-ידי BeginDeferWindowPos או על-ידי הקריאה האחרונה DeferWindowPos.
hWnd
לטפל אל החלון עבור איזה עדכון המידע מאוחסן במבנה.
hWndInsertAfter
לטפל לחלון הקודם את החלון ממוקם לפי סדר Z. פרמטר זה חייב להיות מטפל בחלון או באחד מהבאים:
ערך משמעות
HWND_BOTTOM מיקום החלון בתחתית סדר Z. אם הפרמטר hWnd מזהה החלון העליון, החלון מאבד את המצב העליון שלה, ממוקם בחלק התחתון של כל שאר החלונות.
HWND_NOTOPMOST ממקם החלון windows ומעל הכל ללא-העליון (כלומר, מאחורי כל החלונות העליון). דגל זה אין השפעה אם החלון כבר חלון העליון.
HWND_TOP ממקם את החלון בראש סדר z.
HWND_TOPMOST מיקום החלון windows ומעל הכל ללא-העליון. החלון שומר על מיקומו העליון גם כאשר הוא הופך ללא פעיל.

פרמטר זה תקף אם הדגל SWP_NOZORDER מוגדר בפרמטר uFlags.

x
ציון הקואורדינטה x של הפינה השמאלית העליונה של החלון.
y
ציון קואורדינטת y של הפינה השמאלית העליונה של החלון.
cx
ציון הרוחב החדש של החלון, בפיקסלים.
cy
ציון הגובה החדש של החלון, בפיקסלים.
uFlags
ציון צירוף של הערכים הבאים להשפיע על הגודל והמיקום של חלון:
ערך משמעות
SWP_DRAWFRAME ציור של המסגרת (המוגדר בתיבה תיאור מחלקה של החלון) סביב החלון.
SWP_FRAMECHANGED שליחת הודעה WM_NCCALCSIZE לחלון, גם אם הגודל של החלון לא משתנה. אם דגל זה לא צוין, WM_NCCALCSIZE נשלחת רק בעת ביצוע שינוי הגודל של חלון.
SWP_HIDEWINDOW מסתירה את חלון.
SWP_NOACTIVATE אינו מפעיל את החלון. אם דגל זה אינו מוגדר, החלון המופעלות ועברו להתגורר בראש אחד או העליון בקבוצה (בהתאם להגדרת הפרמטר hWndInsertAfter ).
SWP_NOCOPYBITS מוחק את כל התוכן של אזור הלקוח. אם דגל זה לא צוין, תוכן חוקי של אזור הלקוח לשמור, להעתיק חזרה אל אזור הלקוח לאחר בגודל החלון או לטאבים.
SWP_NOMOVE שומר על המיקום הנוכחי (התעלמות הפרמטרים x ו- Y ).
SWP_NOOWNERZORDER לא משנה המיקום של חלון הבעלים לפי סדר z.
SWP_NOREDRAW לא לצייר מחדש של שינויים. אם דגל זה מוגדר, לא צובע מחדש מכל סוג מתרחש. אפשרות זו חלה על אזור הלקוח, האזור nonclient (כולל פס הכותרת ושורת פסי גלילה) ולאחר חשפו חלק כלשהו של חלון האב של חלון הזזה. דגל זה מוגדר, היישום חייב במפורש לבטל תוקף או לצייר מחדש כל החלקים של חלון ובחלון האב זקוק שרטוט מחדש.
SWP_NOREPOSITION זהה הדגל SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING מניעת קבלת ההודעה WM_WINDOWPOSCHANGING של החלון.
SWP_NOSIZE שומר על הגודל הנוכחי (התעלמות הפרמטרים cx וסי ).
SWP_NOZORDER שומר את סדר z הנוכחי (התעלמות הפרמטר hWndInsertAfter ).
SWP_SHOWWINDOW הצגת חלון.

להחזיר ערכים

הערך המוחזר זיהוי מעודכן מרובה-החלון – מיקום המבנה. נקודת האחיזה המוחזר על-ידי פונקציה זו עשוי להיות שונה ממזהה ייחודי שהועבר לפונקציה. שיש להעביר את נקודת האחיזה החדשה שמחזירה פונקציה זו במהלך השיחה הבאה אל הפונקציה DeferWindowPos או EndDeferWindowPos.

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

הערות

אם קריאה ל- DeferWindowPos נכשל, היישום צריך לנטוש את פעולת מיקום חלון, לא יקרא EndDeferWindowPos.

אם לא צוין SWP_NOZORDER, המערכת מציבה את החלון המזוהה על-ידי הפרמטר hWnd במיקום הבא את החלון המזוהה על-ידי הפרמטר hWndInsertAfter . אם hWndInsertAfter הוא NULL או HWND_TOP, המערכת ממקם את החלון hWnd בראש סדר Z. אם hWndInsertAfter מוגדר HWND_BOTTOM, המערכת מציבה את החלון hWnd בתחתית סדר z.

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

חלון ניתן לבצע החלון העליון על-ידי הגדרת hWndInsertAfter את הדגל HWND_TOPMOST ולהבטיח הדגל SWP_NOZORDER שאינו מוגדר, או על-ידי הגדרת המיקום של החלון לפי סדר Z, כך שניתן יהיה מעל חלונות העליון קיימים. כאשר חלון העליון ביותר נעשית העליון, חלונותיו בבעלות גם נעשים העליון. לבעליו, עם זאת, אינם משתנים.

אם לא SWP_NOACTIVATE ולא SWP_NOZORDER דגל מצוין (כלומר, כאשר היישום מבקש כי חלון ניתן להפעיל בו זמנית ולא לשנות את מיקומו לפי סדר Z), נעשה שימוש בערך שצוין ב- hWndInsertAfter רק בנסיבות הבאות:

ליישום אין אפשרות להפעיל את חלון לא פעיל ללא גם להביא אותה אל ראש סדר Z. יישום לשנות המיקום של חלון מופעל סדר z ללא הגבלות, או אותו הפעל חלון ולאחר מכן להזיז אותה לחלק העליון של windows או העליון.

החלון העליון אינה עוד העליון אם היא תמוקם למטה (HWND_BOTTOM) של סדר z או לאחר כל חלון העליון. כאשר החלון העליון נעשית ללא העליון, לבעליו וחלונות בבעלות נעשים windows העליון.

חלון העליון ביותר עשוי להיות החלון העליון, אך לא להיפך. חלון כלשהו (לדוגמה, תיבת הדו-שיח) בבעלות על החלון העליון הוא עצמו עשה החלון העליון כדי להבטיח כי כל בבעלות windows להישאר מעל בעליהן.

QuickInfo

nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:לא נתמך.
כותרת עליונה:להצהיר על winuser.h.
ייבוא ספריית:השתמש user32.lib.

ראה גם

מבט כולל על Windows, פונקציות חלון, BeginDeferWindowPos, EndDeferWindowPos, מסוג ShowWindow

Index