|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
The WM_NCHITTEST Message
Whenever a mouse event occurs, the system sends a WM_NCHITTEST message to either the window that contains the cursor hot spot or the window that has captured the mouse. Windows uses this message to determine whether to send a client area or nonclient area mouse message. An application that must receive mouse movement and mouse button messages must pass the WM_NCHITTEST message to the DefWindowProc function.
The lParam parameter of the WM_NCHITTEST message contains the screen coordinates of the cursor hot spot. The DefWindowProc function examines the coordinates and returns a hit-test value that identifies the location of the hot spot. The hit-test value can be one of the following values.
Value Location of hot spot HTBORDER In the border of a window that does not have a sizing border HTBOTTOM In the lower horizontal border of a window HTBOTTOMLEFT In the lower left corner of a window border HTBOTTOMRIGHT In the lower right corner of a window border HTCAPTION In a title bar HTCLIENT In a client area HTCLOSE In close button. HTERROR On the screen background or on a dividing line between windows (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error) HTGROWBOX In a size box (same as HTSIZE) HTHELP In Help button. HTHSCROLL In a horizontal scroll bar HTLEFT In the left border of a window HTMENU In a menu HTMAXBUTTON In Maximize button. HTMINBUTTON In Minimize button. HTNOWHERE On the screen background or on a dividing line between windows HTREDUCE In a Minimize button HTRIGHT In the right border of a window HTSIZE In a size box (same as HTGROWBOX) HTSYSMENU In a System menu or in a Close button in a child window HTTOP In the upper horizontal border of a window HTTOPLEFT In the upper left corner of a window border HTTOPRIGHT In the upper right corner of a window border HTTRANSPARENT In a window currently covered by another window HTVSCROLL In the vertical scroll bar HTZOOM In a Maximize button
If the cursor is in the client area of a window, DefWindowProc returns the HTCLIENT hit-test value to the window procedure. When the window procedure returns this code to the system, Windows converts the screen coordinates of the cursor hot spot to client coordinates, and then posts the appropriate client area mouse message. The DefWindowProc function returns one of the other hit-test values when the cursor hot spot is in a window's nonclient area. When the window procedure returns one of these hit-test values, Windows posts a nonclient area mouse message, placing the hit-test value in the message's wParam parameter and the cursor coordinates in the lParam parameter.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Сообщение WM_NCHITTEST
Всякий раз, когда случай мыши происходит, система посылает сообщение WM_NCHITTEST на или окно, которое содержит горячую точку курсора или окно, которые захватили мышь. Окно использует это сообщение, чтобы определять посылать область клиента или nonclient сообщения мыши области. Приложение, которое должно получить перемещение мыши и сообщения кнопки мыши должны передать сообщение WM_NCHITTEST в функцию DefWindowProc.
Параметр lParam сообщения WM_NCHITTEST содержит экранные координаты горячей точки курсора. Функция DefWindowProc изучает координаты и возвращает удар-тест величины, который идентифицирует позицию горячей точки. Удар-тест величины может быть одним из следующего величин.
Позиция Величины горячей точки HTBORDER НА границе окна, что нет имеет калибровку границы HTBOTTOM На более низкой горизонтальной границе окна HTBOTTOMLEFT В более низком левом углу границы окна HTBOTTOMRIGHT В правом нижнем углу границы окна HTCAPTION В баре названия HTCLIENT В области клиента HTCLOSE На закрытую кнопку. HTERROR НА экранном фоне или на делящей линии между окном (также, как HTNOWHERE, кроме того функциональная выдача DefWindowProc системный гудок, чтобы указывать ошибку) HTGROWBOX В размере ящика (также, как HTSIZE) HTHELP На кнопке Помощи. HTHSCROLL В горизонтальном перемещать зону HTLEFT На левую границу окна HTMENU В меню HTMAXBUTTON На кнопке Расширения. HTMINBUTTON В Минимизировать кнопку. HTNOWHERE НА экранном фоне или в делящей строке между окном HTREDUCE На кнопке Minimize HTRIGHT На границе права окна HTSIZE В размере блока (также, как HTGROWBOX) HTSYSMENU В меню Системы или на Закрытой кнопке в окне ребенка HTTOP На верхней горизонтальной границе окна HTTOPLEFT В верхнем левом углу границы окна HTTOPRIGHT В верхнем углу права границы окна HTTRANSPARENT В окне к настоящему времени покрытом другим окном HTVSCROLL В вертикальном перемещать зону HTZOOM На кнопку Расширения
Если курсор - в области клиента окна, DefWindowProc возвращает HTCLIENT нажавшее-величину теста в процедуру окна. Когда процедура окна возвращает этот код в систему, Windows преобразовывает экранные координаты горячей точки курсора в координаты клиента, затем посылает мышь области подходящего сообщения клиента. Функция DefWindowProc возвращает одну из другого нажавшее-величины теста когда горячая точка курсора - в окно nonclient область. Когда процедура окна возвращает одну из их нажавшее-величины теста, Windows посылает сообщение мыши области nonclient, устанавливающее удар-тест величины в параметре сообщения wParam и координаты курсора в параметре lParam.
|
|
|
|
| |