Функция 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, ввод с клавиатуры