找回密码
 加入
搜索
查看: 5442|回复: 10

输入框如何自动获得焦点

[复制链接]
发表于 2008-9-24 09:10:22 | 显示全部楼层 |阅读模式
请问各位高人,如何实现当以下事件发生时,输入框自动获得焦点:
1.窗口被激活;
2.点击窗口任意空白区域。

[ 本帖最后由 McAu 于 2008-9-25 00:18 编辑 ]
发表于 2008-9-24 13:01:28 | 显示全部楼层

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hGUI = GUICreate("测试激活焦点", 300, 200)
$test=GUICtrlCreateInput ("", 10, 10)
$Input=GUICtrlCreateInput ("", 10, 30)
GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
GUISetState()
While 1
    $GUIMsg = GUIGetMsg()
    Switch $GUIMsg
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd

Func WM_ACTIVATE($hWnd, $Msg, $wParam, $lParam)
    Local $iState = BitAnd($wParam, 0x0000FFFF)
    If $iState Then  GUICtrlSetState ($Input,$GUI_FOCUS)

EndFunc

 楼主| 发表于 2008-9-24 19:32:06 | 显示全部楼层

回复 1# McAu 的帖子

多谢居士 不过还有一点要请教:
点击其他控件(即使是 Label)后输入框仍然会失去焦点
有没有办法让输入框总是获得焦点 一直处于“待命”状态?
曾试过循环检测 结果不停设置焦点 根本没办法做其他操作...
发表于 2008-9-24 19:40:33 | 显示全部楼层
点击了其他控件,理所当然的焦点是在点击的控件了的。
 楼主| 发表于 2008-9-24 19:50:15 | 显示全部楼层
那么有没有办法让输入框总是获得焦点 一直处于“待命”状态呢?
发表于 2008-9-24 22:45:42 | 显示全部楼层
输入框永远焦点有什么意义呢?其他的操作根本操作不了。。。

输入框永远处理焦点有两种办法:

1、循环设置

2、事件模式。

我测试结果是,输入框永远处于焦点的话,其他的按钮根本操作不了。
 楼主| 发表于 2008-9-25 00:23:37 | 显示全部楼层
最开始也采用循环 结果不能做其他操作 所以才来论坛请教
想实现输入框永远焦点 只是为方便习惯键盘操作的用户 没有更大的实际意义
再次感谢居士兄
发表于 2008-9-25 01:24:07 | 显示全部楼层
激活设置焦点就是最好的办法啦。不用客气。
发表于 2010-4-7 12:15:37 | 显示全部楼层
没有意义的想法
发表于 2012-10-31 11:04:54 | 显示全部楼层
2楼正解,正好需要焦点激活的代码
发表于 2014-4-8 21:27:20 | 显示全部楼层
学习一下,谢谢分享。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 11:23 , Processed in 0.071669 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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