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

Устанавливает фокус клавиатуры в указанное окно. Окно должно быть подключено к очереди сообщений вызывающего потока.

Синтаксис

HWND SetFocus(
  [in, optional] HWND hWnd
);

Параметры

[in, optional] hWnd

Тип: HWND

Дескриптор окна, которое получит ввод с клавиатуры. Если этот параметр имеет значение NULL, нажатия клавиш игнорируются.

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

Тип: HWND

Если функция выполняется успешно, возвращаемое значение — это дескриптор окна, в которое ранее был установлен фокус клавиатуры. Если параметр hWnd недопустим или окно не подключено к очереди сообщений вызывающего потока, возвращаемое значение равно NULL. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError.

Расширенное ERROR_INVALID_PARAMETER ошибок (0x57) означает, что окно находится в отключенном состоянии.

Комментарии

Эта функция отправляет WM_KILLFOCUS сообщение в окно, которое теряет фокус клавиатуры, и WM_SETFOCUS сообщение в окно, которое получает фокус клавиатуры. Он также активирует окно, которое получает фокус, или родительский элемент окна, получающего фокус.

Если окно активно, но не имеет фокуса, любая нажатая клавиша создает сообщение WM_SYSCHAR, WM_SYSKEYDOWN или WM_SYSKEYUP . Если клавиша VK_MENU также нажата, задается бит 30 параметра lParam сообщения. В противном случае для создаваемых сообщений этот бит не задан.

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

Примеры

Пример см. в разделе Инициализация диалогового окна.

Требования

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

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

Функция AttachThreadInput, функция GetFocus, WM_KILLFOCUS, WM_SETFOCUS, WM_SYSCHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, ввод с клавиатуры