SetFocus功能将键盘焦点设置为指定的窗口。窗口必须与调用线程的消息队列相关联。
HWND SetFocus(
HWND 【的hWnd】 | //处理窗口以接收焦点 |
); |
参数
【的hWnd】
标识将接收键盘输入的窗口。如果此参数为NULL,则将忽略击键。
返回值
如果函数成功,则返回值是以前具有键盘焦点的窗口的句柄。如果【的hWnd】参数无效或窗口与调用线程的消息队列无关,则返回值为NULL。
备注
SetFocus函数向失去键盘焦点的窗口发送WM_KILLFOCUS消息,并向接收键盘焦点的窗口发送WM_SETFOCUS消息。它还激活接收焦点的窗口或接收焦点的窗口的父窗口。
如果窗口处于活动状态但没有焦点,则任何按下的键将产生WM_SYSCHAR,WM_SYSKEYDOWN或WM_SYSKEYUP消息。如果还按VK_MENU键,则消息的【lParam的】参数将置位30。否则,所生成的消息没有设置该位。
通过使用AttachThreadInput函数,线程可以将其输入处理附加到另一个线程。这允许线程调用SetFocus将键盘焦点设置为与另一个线程的消息队列相关联的窗口。
也可以看看
AttachThreadInput, GetFocus, WM_KILLFOCUS, WM_SETFOCUS, WM_SYSCHAR, WM_SYSKEYDOWN, WM_SYSKEYUP