ההודעה WM_NCHITTEST

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

הפרמטר lParam ההודעה WM_NCHITTEST מכילה את הקואורדינטות מסך של הנקודה החמה של הסמן. הפונקציה DefWindowProc בוחן את הקואורדינטות ומחזירה ערך hit-test המזהה את המיקום של הנקודה החמה. Hit-test value יכול להיות אחד מהערכים הבאים.

ערך המיקום של נקודת מגע
HTBORDER בגבול של חלון שאין גבול לשינוי גודל
HTBOTTOM בגבול האופקי התחתון של חלון
HTBOTTOMLEFT בפינה השמאלית התחתונה של גבול חלון
HTBOTTOMRIGHT בפינה השמאלית התחתונה של גבול חלון
HTCAPTION בפס הכותרת
HTCLIENT באזור הלקוח
HTCLOSE לחצן סגירה.
HTERROR על רקע מסך או על הקו המפריד בין חלונות (כמו HTNOWHERE, פרט לכך הפונקציה DefWindowProc מייצרת צפצוף מערכת כדי להצביע על שגיאה)
HTGROWBOX בתיבה גודל (כמו HTSIZE)
HTHELP לחצן עזרה.
HTHSCROLL בפס הגלילה האופקי
HTLEFT בגבול השמאלי של חלון
HTMENU בתפריט
HTMAXBUTTON לחצן הגדל.
HTMINBUTTON לחצן מזער.
HTNOWHERE על רקע מסך או על הקו המפריד בין חלונות
HTREDUCE בלחצן מזער
HTRIGHT ב- הגבול הימני של חלון
HTSIZE בתיבה גודל (כמו HTGROWBOX)
HTSYSMENU תפריט מערכת או לחצן סגור חלון צאצא
HTTOP בגבול האופקי העליון של חלון
HTTOPLEFT בפינה הימנית העליונה של גבול חלון
HTTOPRIGHT בפינה השמאלית העליונה של גבול חלון
HTTRANSPARENT בחלון כעת המכוסה על-ידי חלון אחר באותו הליך משנה
HTVSCROLL בפס הגלילה האנכי
HTZOOM בתיבה לחצן הגדל

אם הסמן נמצא באזור הלקוח של חלון, DefWindowProc מחזירה את הערך hit-test HTCLIENT להליך חלון. כאשר הפרוצדורה של חלון מחזירה קוד זה למערכת, המערכת ממירה את הקואורדינטות מסך של הנקודה החמה הסמן קואורדינטות לקוח ולאחר מכן הצבות הלקוח המתאים בהודעה העכבר באזור.

הפונקציה DefWindowProc מחזירה אחד מהערכים hit-test אחרים כאשר המגע הסמן נמצא באזור nonclient של חלון. כאשר הפרוצדורה של חלון חוזר אחד מהערכים האלה hit-test, המערכת הצבות nonclient בהודעה העכבר באזור, הצבת hit-test value הפרמטר wParam של ההודעה ואת קואורדינטות הסמן בפרמטר lParam.

Index