Сообщения мыши области клиента

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

Сообщение Значение
WM_LBUTTONDBLCLK Был дважды щелкнуть левой кнопкой мыши.
WM_LBUTTONDOWN Была нажата левая кнопка мыши.
WM_LBUTTONUP Левая кнопка мыши была выпущена.
WM_MBUTTONDBLCLK Средняя кнопка мыши была двойном.
WM_MBUTTONDOWN Была нажата средняя кнопка мыши.
WM_MBUTTONUP Средняя кнопка мыши была выпущена.
WM_RBUTTONDBLCLK Был дважды щелкнуть правой кнопкой мыши.
WM_RBUTTONDOWN Была нажата правая кнопка мыши.
WM_RBUTTONUP Правой кнопкой мыши был выпущен.

Параметры сообщения

Параметр lParam сообщения мыши области клиент указывает позицию активной курсора. Младшее слово Указывает координату x горячей точке, а старшее слово Координата y. Координаты приведены в клиентских координатах. В системе координат клиента все точки на экране приводятся относительно левого верхнего угла клиентской области точки с координатами (0,0).

Параметр wParam содержит флаги, определяющие статус других кнопок мыши и клавиши ctrl и клавиш shift во время события мыши. Вы можете проверить эти флаги, когда сообщение мыши обработка зависит от состояния другой кнопки мыши или клавиши ctrl или shift. Параметр lParam может быть комбинацией следующих значений.

Значение Значение
MK_CONTROL Нажата клавиша ctrl.
MK_LBUTTON Левая кнопка мыши не работает.
MK_MBUTTON Средняя кнопка мыши не работает.
MK_RBUTTON Правой кнопкой мыши не работает.
MK_SHIFT Клавиша shift.

Дважды щелкните сообщения

Система генерирует дважды щелкните сообщение, когда пользователь нажимает кнопку мыши дважды. Когда пользователь нажимает кнопку, система устанавливает прямоугольник вокруг активной курсора. Он также знаменует время, на котором выполнен щелчок. Когда пользователь нажимает ту же кнопку еще раз, система определяет, является ли активная точка до сих пор в пределах прямоугольника и вычисляет время, прошедшее после первого щелчка. Если активная точка — это до сих пор в пределах прямоугольника и затраченное время не превышены дважды щелкните значение времени ожидания, система генерирует сообщение двойным.

Приложение можно получить и задать значения времени ожидания двойного щелчка с помощью функций GetDoubleClickTime и SetDoubleClickTime , соответственно. Кроме того, приложение можно задать значение тайм-аута двойного щелчка, используя флаг SPI_SETDOUBLECLICKTIME с функции SystemParametersInfo . Можно также задать размер прямоугольника, который система использует для обнаружения дважды щелкает путем передачи SPI_SETDOUBLECLKWIDTH и SPI_SETDOUBLECLKHEIGHT флаги SystemParametersInfo. Обратите внимание, что установка значения тайм-аута двойного щелчка и прямоугольник затрагивает все приложения.

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

Дважды щелкните сообщение всегда является третьим в серии на 4 сообщение. Первые два сообщения кнопку вниз и кнопки вверх сообщения, генерируемые первого щелчка. Вторым щелчком генерирует дважды щелкните сообщение, после чего другой кнопкой сообщение. Например двойной щелчок левой кнопкой мыши генерирует следующую последовательность сообщений:

WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP

Окно всегда кнопку вниз сообщение до получения дважды щелкните сообщение, получает приложение обычно использует дважды щелкните сообщение для расширения задачу, которую он начал во время кнопку вниз сообщение. Например когда пользователь щелкает цвета в цветовой палитре Microsoft Paint, Paint отображает выбранный цвет рядом с палитрой. Когда пользователь дважды щелкает цвета, краска отображает цвет и открывает диалоговое окно « редактировать цвета ».

Index