Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как система предоставляет входные данные мыши приложению и как приложение получает и обрабатывает входные данные.
В этом разделе
Тема | Описание |
---|---|
О вводе мыши |
В этом разделе рассматриваются входные данные мыши. |
Использование ввода мыши |
В этом разделе рассматриваются задачи, связанные с вводом мыши. |
Справочник по вводу мыши |
Функции
Имя | Описание |
---|---|
_TrackMouseEvent | Публикует сообщения, когда указатель мыши покидает окно или находится над окном в течение определенного периода времени. Эта функция вызывает TrackMouseEvent, если она существует, в противном случае она эмулирует ее. |
BlockInput | Блокирует поступление к приложениям событий ввода с клавиатуры и мыши. |
DragDetect | Записывает мышь и отслеживает его движение, пока пользователь не выпустит левую кнопку, нажимает клавишу ESC или перемещает мышь за пределы прямоугольника перетаскивания вокруг указанной точки. Ширина и высота прямоугольника перетаскивания задаются значениями SM_CXDRAG и SM_CYDRAG, возвращаемыми функцией GetSystemMetrics. |
EnableMouseInPointer | Позволяет мышью выступать в качестве указывающего устройства. |
EnableWindow | Включает или отключает ввод мыши и клавиатуры в указанное окно или элемент управления. Если входные данные отключены, окно не получает входные данные, такие как щелчки мыши и нажатия клавиш. Если входные данные включены, окно получает все входные данные. |
GetCapture | Извлекает дескриптор окна (если оно есть), которое захватило мышь. Только одно окно за раз может захватить мышь; данное окно получает ввод мыши, независимо от того, находится ли курсор в пределах. |
GetDoubleClickTime | Извлекает текущее время двойного щелчка мыши. Двойной щелчок — это серия двух нажатий кнопки мыши, вторая происходит в течение указанного времени после первого. Время двойного щелчка — это максимальное количество миллисекунд, которое может пройти между первым и вторым щелчком при двойном щелчке. |
GetMouseMovePointsEx | Извлекает историю до 64 предыдущих координат мыши или пера. |
ЯвляетсяОкноВключено | Определяет, включено ли указанное окно для ввода мыши и клавиатуры. |
ОсвободитьЗахват | Освобождает захват мыши из окна в рамках текущего потока и восстанавливает обычную обработку ввода мыши. Окно, запечатленное мышью, получает все входные данные мыши независимо от положения курсора, за исключением случаев, когда кнопка мыши щелкается, пока горячая точка курсора находится в окне другого потока. |
SendInput | Синтезирует нажатия клавиш, движения мыши и нажатия кнопки. |
УстановитьЗахват | Устанавливает захват мыши на указанное окно, принадлежащее текущему потоку.
SetCapture фиксирует ввод мыши, когда мышь находится над окном захвата, или когда кнопка мыши была нажата, пока мышь была над окном захвата, и кнопка все еще удерживается. Только одно окно за раз может перехватывать мышь. Если курсор мыши находится над окном, созданным другим потоком, система будет направлять ввод мыши в указанное окно, только если кнопка мыши нажата. |
SetDoubleClickTime | Задает время двойного щелчка мыши. Двойной щелчок — это серия двух щелчков кнопки мыши, вторая происходит в течение указанного времени после первого. Время двойного щелчка — это максимальное количество миллисекунд, которые могут возникать между первым и вторым щелчком двойного щелчка. |
SwapMouseButton | Отменяет или восстанавливает значение левой и правой кнопки мыши. |
TrackMouseEvent | Публикует сообщения, когда указатель мыши покидает окно или находится над окном в течение определенного периода времени. |
Следующая функция устарела.
Функция | Описание |
---|---|
mouse_event | Синтезирует движение мыши и нажатия кнопки. |
Уведомления
Имя | Описание |
---|---|
WM_APPCOMMAND | Уведомляет окно о том, что пользователь создал событие команды приложения, например щелкнув кнопку команды приложения с помощью мыши или введя клавишу команды приложения на клавиатуре. |
WM_CAPTURECHANGED | Отправлено в окно, которое теряет захват мыши. |
WM_LBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает левую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_LBUTTONDOWN | Опубликовано, когда пользователь нажимает левую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_LBUTTONUP | Опубликовано, когда пользователь освобождает левую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_MBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает среднюю кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_MBUTTONDOWN | Опубликовано, когда пользователь нажимает среднюю кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_MBUTTONUP | Опубликовано, когда пользователь освобождает среднюю кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_MOUSEACTIVATE | Отправляется, когда курсор находится в неактивном окне, и пользователь нажимает кнопку мыши. Родительское окно получает это сообщение, только если дочернее окно передает его в функцию DefWindowProc. |
WM_MOUSEHOVER | Размещено в окне при наведении курсора на клиентскую область окна в течение времени, указанного в предыдущем вызове TrackMouseEvent. |
WM_MOUSEHWHEEL | Отправляется в окно фокуса при наклоне или повороте горизонтального колесика прокрутки мыши. ФункцияDefWindowProcпередаёт сообщение родительскому элементу окна. Не должно быть внутренней пересылки сообщения, так как DefWindowProc распространяет его вверх по родительской цепочке, пока не обнаружит окно, которое обрабатывает его. |
WM_MOUSELEAVE | Размещено в окне, когда курсор покидает клиентскую область окна, указанного в предыдущем вызове TrackMouseEvent. |
WM_MOUSEMOVE | Размещено в окне при перемещении курсора. Если мышь не захвачена, сообщение отправляется в окно, содержащее курсор. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_MOUSEWHEEL | Отправляется в окно фокуса при повороте колесика мыши. Функция DefWindowProc передает сообщение родителю окна. Не должно быть внутренней пересылки сообщения, так как DefWindowProc распространяет его вверх по родительской цепочке, пока не обнаружит окно, которое обрабатывает его. |
WM_NCHITTEST | Отправляется в окно, чтобы определить, какая часть окна соответствует определенной координате экрана. Это может произойти, например, при перемещении курсора, нажатии или освобождении кнопки мыши или в ответ на вызов функции, например WindowFromPoint. Если мышь не захвачена, сообщение отправляется в окно под курсором. В противном случае сообщение отправляется в окно, которое захватило мышь. |
WM_NCLBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает левую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCLBUTTONDOWN | Опубликовано, когда пользователь нажимает левую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCLBUTTONUP | Опубликовано, когда пользователь освобождает левую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCMBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает среднюю кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCMBUTTONDOWN | Опубликовано, когда пользователь нажимает среднюю кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCMBUTTONUP | Опубликовано, когда пользователь освобождает среднюю кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCMOUSEHOVER | Отправляется в окно, когда курсор находится в неклиентной области окна в течение времени, указанного в предыдущем вызове функцииTrackMouseEvent. |
WM_NCMOUSELEAVE | Размещено в окне, когда курсор покидает неклиентную область окна, указанного перед вызовомTrackMouseEvent. |
WM_NCMOUSEMOVE | Размещено в окне при перемещении курсора в неклиентную область окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCRBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает правую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCRBUTTONDOWN | Отображается, когда пользователь нажимает правую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCRBUTTONUP | Опубликовано, когда пользователь освобождает правую кнопку мыши, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCXBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает XBUTTON1 или XBUTTON2, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCXBUTTONDOWN | Опубликовано, когда пользователь нажимает XBUTTON1 или XBUTTON2, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCXBUTTONUP | Опубликовано, когда пользователь освобождает XBUTTON1 или XBUTTON2, пока курсор находится в неклиентной области окна. Это сообщение публикуется в окне, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_RBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает правую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_RBUTTONDOWN | Опубликовано, когда пользователь нажимает правую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_RBUTTONUP | Опубликовано, когда пользователь освобождает правую кнопку мыши, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_XBUTTONDBLCLK | Опубликовано, когда пользователь дважды щелкает XBUTTON1 или XBUTTON2, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_XBUTTONDOWN | Опубликовано, когда пользователь нажимает XBUTTON1 или XBUTTON2, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
WM_XBUTTONUP | Опубликовано, когда пользователь освобождает XBUTTON1 или XBUTTON2, пока курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет размещено в окне под курсором. В противном случае сообщение пересылается в окно, которое захватило мышь. |
Структуры
Имя | Описание |
---|---|
HARDWAREINPUT | Содержит сведения об имитированном сообщении, созданном устройством ввода, кроме клавиатуры или мыши. |
входные | Содержит сведения, используемые для синтеза событий ввода, таких как нажатия клавиш, перемещение мыши и щелчки мыши. |
LASTINPUTINFO | Содержит время последнего ввода. |
ВводМыши | Содержит сведения о имитированном событии мыши. |
MOUSEMOVEPOINT | Содержит сведения о расположении мыши в координатах экрана. |
TRACKMOUSEEVENT | Используется функцией TrackMouseEvent для отслеживания того, когда указатель мыши покидает окно или находится над окном в течение указанного периода времени. |