曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3978|回复: 0
打印 上一主题 下一主题

SetFocus() -- 对指定的窗口设置键盘焦点

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2012-2-9 18:56:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SetFocus() 函数原型如下:
HWND SetFocus(
  HWND hWnd
);
该函数对指定的窗口设置键盘焦点,它只有一个参数,这个参数就是接收键盘输入的窗口句柄,这个句柄常用 GetDlgItem() 函数来获得。当键盘焦点设置到窗口上后,那么所有的后续的键盘输入都会被定向到该窗口上来。

下面举一个简单的例子说明,一个含有用户名和密码输入框的对话框如下图所示:

当在用户名框里输入用户名少于 4 个字符时,程序会发出错误提示,如下所示:

当我们点击 OK 后会返回主对话框窗口,注意,此时从程序的人性化设计角度来看,在用户输入错误返回时,应该还将输入光标保留用户名输入框中,这样就方便用户再次输入用户名,对此 SetFocus() 窗口就可以发挥作用了,比如:
[C++] 纯文本查看 复制代码
if (用户名长度小于4) 
{
    /* 这里做一些其它的错误处理 */
    SetFocus (GetDlgItem(hDlg,IDC_TXT0));
 }

在上面的 SetFocus() 函数里用 GetDlgItem() 函数获得了输入框窗口的句柄。

假如上面不使用 SetFocus() 函数,那么你在点击 OK 按钮返回到主对话框窗口后将不能看到一个输入光标在用户名输入框中闪现,如果想再输入用户名,那么就需要用鼠标再往输入框里点击一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 16:39 , Processed in 0.079965 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表