找回密码
 加入
搜索
查看: 4654|回复: 8

[AU3基础] [已解决]如何让鼠标点击GUICtrlCreateInput时内置的信息自动消失?

  [复制链接]
发表于 2014-11-23 21:34:41 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2015-2-25 15:35 编辑

如何让鼠标点击GUICtrlCreateInput时内置的信息自动消失?而当鼠标离开后若没有输入任何内容时,又恢复默认的信息?谢谢!
发表于 2014-11-24 18:06:08 | 显示全部楼层
回复 1# smooth
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Local $sDefault = "默认值"
GUICreate('TEST', 420, 200)
$Input = GUICtrlCreateInput($sDefault, 10, 15, 400, 23)
$Edit =  GUICtrlCreateEdit('', 10, 50, 400, 140)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
Do
Until GUIGetMsg() == -3

Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
        Local $nCode = BitShift($wParam, 16)
        Local $ID = BitAND($wParam, 0x0000FFFF)
                If $ID <>  $Input Then Return
        If $nCode = $EN_KILLFOCUS Then
                   If GUICtrlRead($Input) == '' Then GUICtrlSetData($Input, $sDefault)
            ElseIf $nCode = $EN_SETFOCUS Then
                   GUICtrlSetData($Input, '')
        EndIf
EndFunc
发表于 2014-11-24 19:28:16 | 显示全部楼层
回复 2# user3000

谢谢,又学习了。但感觉把排列对换一下会好一点,不知是什么原因?

$Input = GUICtrlCreateInput($sDefault, 10, 15, 400, 23)
$Edit =  GUICtrlCreateEdit('', 10, 50, 400, 140)

$Edit =  GUICtrlCreateEdit('', 10, 50, 400, 140)       
$Input = GUICtrlCreateInput($sDefault, 10, 15, 400, 23)
发表于 2014-11-26 18:02:05 | 显示全部楼层
回复 2# user3000


    能否在事件模式下实现?
发表于 2014-11-26 18:27:46 | 显示全部楼层
回复 4# vigiles


    这问题可以自己尝试下,比发问更有体会.
发表于 2014-11-27 08:50:12 | 显示全部楼层
回复 2# user3000
为什么要建立两个控件
发表于 2014-11-27 18:07:51 | 显示全部楼层
回复 6# netegg

老大,没什么特殊缘由.随手改的代码;这样又方便转移输入焦点.
 楼主| 发表于 2014-12-6 21:30:37 | 显示全部楼层
回复 2# user3000

这样有点问题,弹出界面后,当鼠标一开始就点击这个GUICtrlCreateInput时,默认的信息无法自动消失。只有当鼠标点到别的地方,然后再点GUICtrlCreateInput时,才有那样的效果。
发表于 2014-12-6 21:53:49 | 显示全部楼层
回复 8# smooth

应该就是3楼说的重新排列一下会"更好"的原因了,像那样先创建EDIT控件,输入焦点就会在其上.
也可以创建完控件后再设置输入焦点:
;#include <GUIConstantsEx.au3>
;.............
;GUICtrlSetState($Edit, $gui_focus)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-28 08:40 , Processed in 0.090509 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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