原文链接 -> 传送门
函数功能:
SetFocus 函数对指定窗口设置键盘焦点。该窗口必须被附加到调用线程的消息队列。
API 函数原型:
注释:_In_ 说明该参数是输入的,_opt_ 说明该参数是可选的。
HWND WINAPI SetFocus( _In_opt_ HWND hWnd );
参数解析:
|
参数 |
含义 |
|
hWnd |
1. 指向将要接收键盘输入的窗口的句柄 |
返回值:
1. 如果函数调用成功,则返回值为之前具有键盘焦点的窗口的句柄;
2. 如果 hWnd 参数无效或者窗口没有被附加到调用线程的消息队列,则返回值为 NULL。
获取有关错误的更多信息,请调用 GetLastError 函数。
备注:
1. SetFocus 函数发送一条 WM_KILLFOCUS 消息给失去键盘焦点的窗口,和一条 WM_SETFOCUS 消息给接受键盘焦点的窗口。并且会激活接受键盘焦点的窗口或接受键盘焦点的窗口的父窗口。
2. 如果一个窗口是活动的,但没有键盘焦点,则任何按键将会产生 WM_SYSCHAR, WM_SYSKEYDOWN,或WM_SYSKEYUP 消息。如果 VK_MENU 键也被按下,则消息的 lParam 参数会将第 30 位置 1。否则,所产生的消息将不会使该位置位。
3. 通过使用 AttachThreadInput 函数,一个线程可将输入处理附加到其它线程。这使得线程可以调用 SetFocus 函数为一个附加到其他线程消息队列的窗口设置键盘焦点。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |




