Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Обзор сообщений

MK_MBUTTON– средняя кнопка мыши находится в нажатом состоянии;

MK_RBUTTON– правая кнопка мыши находится в нажатом состоянии;      

MK_SHIFT– нажата клавиша SHIFT.

Обработчики этих сообщений должны возвращать нулевое значение. Отметим также, что сообщения о двойных щелчках мышью будут поступать в функцию окна только в случае, если класс окна определен со стилем CS_DBLCLKS.

                В случае, если курсор мыши находится во внешней области окна (пространстве между внешним контуром окна и его рабочей областью – non-client area) генерируются следующие сообщения, смысл которых аналогичен только что рассмотренным :  WM_NCLBUTTONDBLCLK,  WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, WM_NCMBUTTONDBLCLK,  WM_NCMBUTTONDOWN, WM_NCMBUTTONUP, WM_NCMOUSEMOVE,  WM_NCRBUTTONDBLCLK,  WM_NCRBUTTONDOWN, WM_NCRBUTTONUP. Параметр  wParam cообщений WM_NC* содержит значение, возвращаемое функцией DefWindowProc как результат обработки сообщения WM_NCHITEST, а параметр lParam – координаты курсора в структуре типа POINTS :

            typedef struct tagPOINTS { SHORT x; SHORT y; } POINTS;

 Реакция на события от мыши во внешней области окна предопределена в Windows, так как в этом пространстве находятся такие элементы, как рамка окна, заголовок окна, строки меню и т.п. Поэтому в абсолютном большинстве случаев приложение не обрабатывает сообщения WM_NC*, поручая это Windowsпосредством вызова функции DefWindowProc. Если все же необходима обработка приложением названных сообщений, то их обработчик должен по окончании обработки вызвать функцию DefWindowProc для сохранения стандартной реакции Windowsна соответствующее событие.

            Мы кратко рассмотрели некоторые наиболее часто используемые сообщения. Еще целый ряд сообщений будет рассмотрен при изучении соответствующих тем. Для более полной информации следует обратиться к справочной документации или электронному справочнику WIN32 Programmer’s Reference системы программирования BorlandC++ 5.01. Всего в WIN32 определено более 200 сообщений и, естественно, подробное их рассмотрение выходит за рамки данного пособия.

предыдущаяследующая