SetFocus() 函数原型如下:HWND SetFocus(
HWND hWnd
); 该函数对指定的窗口设置键盘焦点,它只有一个参数,这个参数就是接收键盘输入的窗口句柄,这个句柄常用 GetDlgItem() 函数来获得。当键盘焦点设置到窗口上后,那么所有的后续的键盘输入都会被定向到该窗口上来。
下面举一个简单的例子说明,一个含有用户名和密码输入框的对话框如下图所示:
当在用户名框里输入用户名少于 4 个字符时,程序会发出错误提示,如下所示:
当我们点击 OK 后会返回主对话框窗口,注意,此时从程序的人性化设计角度来看,在用户输入错误返回时,应该还将输入光标保留用户名输入框中,这样就方便用户再次输入用户名,对此 SetFocus() 窗口就可以发挥作用了,比如:
[C++] 纯文本查看 复制代码 if (用户名长度小于4)
{
/* 这里做一些其它的错误处理 */
SetFocus (GetDlgItem(hDlg,IDC_TXT0));
}
在上面的 SetFocus() 函数里用 GetDlgItem() 函数获得了输入框窗口的句柄。
假如上面不使用 SetFocus() 函数,那么你在点击 OK 按钮返回到主对话框窗口后将不能看到一个输入光标在用户名输入框中闪现,如果想再输入用户名,那么就需要用鼠标再往输入框里点击一下。 |