Функция SetCapture (winuser.h)

Задает для захвата мыши указанное окно, принадлежащее текущему потоку. SetCapture захватывает ввод мыши, когда указатель мыши находится над окном захвата, или когда кнопка мыши была нажата, когда мышь была нажата над окном захвата и кнопка все еще не работает. Только одно окно за раз может захватывать мышь.

Если курсор мыши находится над окном, созданным другим потоком, система будет направлять ввод мыши в указанное окно только в том случае, если кнопка мыши не работает.

Синтаксис

HWND SetCapture(
  [in] HWND hWnd
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор окна в текущем потоке для захвата мыши.

Возвращаемое значение

Тип: HWND

Возвращаемое значение — это дескриптор для окна, которое ранее захватило мышь. Если такого окна нет, возвращаемое значение равно NULL.

Комментарии

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

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

Эту функцию нельзя использовать для записи данных с помощью мыши, предназначенных для другого процесса.

При захвате мыши клавиши меню и другие ускорители клавиатуры не работают.

Примеры

Пример см. в разделе Рисование линий с помощью мыши.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-mouse-l1-1-0 (представлено в Windows 8)

См. также раздел

Основные понятия

GetCapture

Ввод с помощью мыши

Справочные материалы

ReleaseCapture

WM_CAPTURECHANGED