Función SetFocus (winuser.h)

Establece el foco del teclado en la ventana especificada. La ventana debe asociarse a la cola de mensajes del subproceso que llama.

Sintaxis

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

Parámetros

[in, optional] hWnd

Tipo: HWND

Identificador de la ventana que recibirá la entrada del teclado. Si este parámetro es NULL, se omiten las pulsaciones de teclas.

Valor devuelto

Tipo: HWND

Si la función se realiza correctamente, el valor devuelto es el identificador de la ventana que anteriormente tenía el foco del teclado. Si el parámetro hWnd no es válido o la ventana no está asociada a la cola de mensajes del subproceso que realiza la llamada, el valor devuelto es NULL. Para obtener información de error extendida, llame a la función GetLastError.

El error extendido ERROR_INVALID_PARAMETER (0x57) significa que la ventana está en estado deshabilitado.

Comentarios

Esta función envía un mensaje WM_KILLFOCUS a la ventana que pierde el foco del teclado y un mensaje WM_SETFOCUS a la ventana que recibe el foco del teclado. También activa la ventana que recibe el foco o el elemento primario de la ventana que recibe el foco.

Si una ventana está activa pero no tiene el foco, cualquier tecla presionada genera el mensaje WM_SYSCHAR, WM_SYSKEYDOWN o WM_SYSKEYUP . Si también se presiona la tecla VK_MENU, se establece el bit 30 del parámetro lParam del mensaje. De lo contrario, los mensajes generados no tienen este conjunto de bits.

Mediante el uso de la función AttachThreadInput, un subproceso puede adjuntar su procesamiento de entrada a otro subproceso. Esto permite que un subproceso llame a SetFocus para establecer el foco del teclado en una ventana adjunta a la cola de mensajes de otro subproceso.

Ejemplos

Para obtener un ejemplo, vea Inicializar un cuadro de diálogo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-window-l1-1-4 (introducido en Windows 10, versión 10.0.14393)

Consulte también

Función AttachThreadInput, función GetFocus, WM_KILLFOCUS, WM_SETFOCUS, WM_SYSCHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, Entrada de teclado