Ввод с помощью мыши
В этом разделе описывается, как система обеспечивает ввод с помощью мыши для приложения, а также как приложение получает и обрабатывает эти входные данные.
В этом разделе
Раздел | Описание |
---|---|
Сведения о вводе с помощью мыши |
В этом разделе рассматриваются входные данные с помощью мыши. |
Использование ввода с помощью мыши |
В этом разделе рассматриваются задачи, связанные с вводом с помощью мыши. |
Справочник по вводу с помощью мыши |
Функции
Имя | Описание |
---|---|
_TrackMouseEvent | Публикует сообщения, когда указатель мыши покидает окно или наносит указатель мыши на окно в течение указанного периода времени. Эта функция вызывает TrackMouseEvent , если она существует, в противном случае эмулирует ее. |
BlockInput | Блокирует доступ к приложениям с помощью клавиатуры и мыши. |
DragDetect | Захватывает мышь и отслеживает ее движение, пока пользователь не отпустит левую кнопку мыши, не нажмет клавишу ESC или не переместит мышь за пределы прямоугольника перетаскивания, в котором находится указанная точка. Ширина и высота прямоугольника перетаскивания задаются значениями SM_CXDRAG и SM_CYDRAG , возвращаемыми функцией GetSystemMetrics . |
EnableMouseInPointer | Позволяет мыши действовать в качестве указывающего устройства. |
EnableWindow | Включает или отключает ввод с помощью мыши и клавиатуры для указанного окна или элемента управления. Если входные данные отключены, окно не получает такие входные данные, как щелчки мышью и нажатия клавиш. Если вход включен, окно получает все входные данные. |
GetCapture | Извлекает дескриптор в окно (если таковое имеется), которое захватило мышь. Только одно окно за раз может захватывать мышь; Это окно получает ввод с помощью мыши независимо от того, находится ли курсор в пределах его границ. |
GetDoubleClickTime | Извлекает текущее время двойного щелчка мыши. Двойной щелчок — это последовательность из двух щелчков кнопки мыши, второй — в течение указанного времени после первого. Время двойного щелчка — это максимальное количество миллисекунд, которое может произойти между первым и вторым щелчком двойного щелчка. |
GetMouseMovePointsEx | Извлекает журнал до 64 предыдущих координат мыши или пера. |
IsWindowEnabled | Определяет, включено ли указанное окно для ввода с помощью мыши и клавиатуры. |
ReleaseCapture | Освобождает захват мыши из окна в текущем потоке и восстанавливает нормальную обработку ввода с помощью мыши. Окно, захватив мышь, получает все входные данные, независимо от положения курсора, за исключением нажатия кнопки мыши, когда курсор находится в окне другого потока. |
SendInput | Синтезирует нажатия клавиш, движения мыши и нажатия кнопок. |
SetCapture | Задает для захвата мыши указанное окно, принадлежащее текущему потоку. 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 | Публикуется, когда пользователь дважды щелкает первую или вторую кнопку X, когда курсор находится в неклиентной области окна. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCXBUTTONDOWN | Публикуется, когда пользователь нажимает первую или вторую кнопку X, когда курсор находится в неклиентной области окна. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_NCXBUTTONUP | Публикуется, когда пользователь отпускает первую или вторую кнопку X, когда курсор находится в неклиентной области окна. Это сообщение отправляется в окно, содержащее курсор. Если окно захватило мышь, это сообщение не публикуется. |
WM_RBUTTONDBLCLK | Публикуется, когда пользователь дважды щелкает правую кнопку мыши, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
WM_RBUTTONDOWN | Публикуется, когда пользователь нажимает правую кнопку мыши, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
WM_RBUTTONUP | Публикуется, когда пользователь отпускает правую кнопку мыши, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
WM_XBUTTONDBLCLK | Публикуется, когда пользователь дважды щелкает первую или вторую кнопку X, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
WM_XBUTTONDOWN | Публикуется, когда пользователь нажимает первую или вторую кнопку X, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
WM_XBUTTONUP | Публикуется, когда пользователь отпускает первую или вторую кнопку X, когда курсор находится в клиентской области окна. Если мышь не захвачена, сообщение будет отправлено в окно под курсором. В противном случае сообщение будет отправлено в окно, которое захватило мышь. |
Структуры
Имя | Описание |
---|---|
HARDWAREINPUT | Содержит сведения о имитированном сообщении, созданном с помощью устройства ввода, отличного от клавиатуры или мыши. |
ВХОД | Содержит сведения, используемые для синтеза событий ввода, таких как нажатия клавиш, перемещение мыши и щелчки мышью. |
LASTINPUTINFO | Содержит время последнего ввода. |
MOUSEINPUT | Содержит сведения о имитированном событии мыши. |
MOUSEMOVEPOINT | Содержит сведения о расположении мыши в экранных координатах. |
TRACKMOUSEEVENT | Используется функцией TrackMouseEvent для отслеживания того, когда указатель мыши покидает окно или наносит указатель мыши на окно в течение определенного периода времени. |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по