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


Курс лекций:


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

Практикум:



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

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

         while (GetMessage(&msg ,  0 ,  0  ,  0 ) ) {TranslateMessage(&msg); DispatchMessage(&msg);}

            Обработчики всех клавиатурных сообщений должны возвращать нулевое значение.

            При  любом  перемещении  мыши по экрану  генерируется  сообщение WM_NCHITEST. Старшее слово параметра lParam этого сообщения содержит вертикальную, а младшее слово – горизонтальную координату курсора мыши в момент появления сообщения. Обычно это сообщение не обрабатывается  приложением , а передается  функции  DefWindowProc .  После обработки  этого сообщения Windows анализирует положение курсора,  а  также  наличие нажатия клавиши  мыши  и генерирует одно из нижеперечисленных  сообщений. В случае, если курсор находится в рабочей области окна генерируются сообщения :

WM_LBUTTONDBLCLK – двойной щелчок левой кнопкой мыши;

WM_LBUTTONDOWN – нажата левая кнопка мыши;

WM_LBUTTONUP – отпущена левая кнопка мыши;

WM_MBUTTONDBLCLK – двойной щелчок средней кнопкой мыши;

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

WM_MBUTTONUP – отпущена средняя кнопка мыши;

WM_RBUTTONDBLCLK – двойной щелчок правой кнопкой мыши;

WM_RBUTTONDOWN – нажата правая кнопка мыши;

19

WM_RBUTTONUP – отпущена правая кнопка мыши;

WM_MOUSEMOVE – перемещение курсора мыши;

 WM_MOUSEACTIVATE – нажата клавиша мыши над неактивным окном.

            Для всех перечисленных сообщений параметр lParam содержит координаты курсора мыши (старшее слово – вертикальную, младшее – горизонтальную), а параметр wParam представляет логическую комбинацию следующих битовых флагов :

            MK_CONTROL– нажата клавиша CTRL;           

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

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