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