找回密码
 加入
搜索
查看: 12676|回复: 22

[AU3基础] 关于input输入显示问题?请教大大们(已解决)

 火.. [复制链接]
发表于 2014-7-21 13:15:13 | 显示全部楼层 |阅读模式
本帖最后由 qsy666888 于 2018-3-7 10:10 编辑

我们通常使用模式:$Input1 = GUICtrlCreateInput("1111", 145, 58, 153, 23, $ES_PASSWORD)
现在我想的是:把 函数: $ES_PASSWORD 不放在里面,放在第二行(或者放设置的条件里面),如
       $Input1 = GUICtrlCreateInput("1111", 145, 58, 153, 23)
      xxxxxxxxx($Input1, $ES_PASSWORD)
请教大大们,该如何写,谢谢
发表于 2014-7-21 14:40:58 | 显示全部楼层
回复 1# qsy666888

xxxxxxxxx 就是 GUICtrlSetStyle
 楼主| 发表于 2014-7-21 14:59:38 | 显示全部楼层
回复 2# xiehuahere
不对也,
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 350, 98, 192, 124)
Global $Input1 = GUICtrlCreateInput("", 88, 32, 201, 21)
GUICtrlSetStyle(-1,$ES_PASSWORD)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd
发表于 2014-7-21 15:28:57 | 显示全部楼层
回复 3# qsy666888


Au3在GUICtrlSetStyle函数帮助里说明了:
有部分样式不能修改,请参考 MSDN 文档 documentation.


MSDN文档:
http://msdn.microsoft.com/en-us/ ... 75464(v=vs.85).aspx
After the control has been created, these styles cannot be modified, except as noted.


不过我疑惑的是,用Edit控件直接这样也不行:
Global $Edit1 = GUICtrlCreateEdit("", 88, 32, 201, 21, $ES_PASSWORD)
 楼主| 发表于 2014-7-21 15:41:16 | 显示全部楼层
不行,不能实现星号显示
 楼主| 发表于 2014-7-21 15:41:41 | 显示全部楼层
回复 4# xiehuahere

不行,不能实现星号显示
 楼主| 发表于 2014-7-21 18:15:06 | 显示全部楼层
难道大大们就没有一个人知道吗?
发表于 2014-7-21 20:04:49 | 显示全部楼层
Global Const $EM_SETPASSWORDCHAR = 0xCC

GUICreate("Test", 350, 98, 192, 124)
GUICtrlCreateInput("For Test Only!", 88, 32, 201, 21)
GUICtrlSendMsg(-1, $EM_SETPASSWORDCHAR, 42, 0)
; 星号"*" 的ASCII字符序号为 42
GUISetState()
While 1
       If  GUIGetMsg() = -3 Then ExitLoop
WEnd
回复 7# qsy666888
 楼主| 发表于 2014-7-21 21:42:12 | 显示全部楼层
回复 8# user3000

大侠,能不能帮我看看,是怎么回事,我改去改来都没有改得好。
Global $EM_SETPASSWORDCHAR = 0xCC
Global $a,$b,$c
Local $text_wenben= "请输入qq号码"
Global $Mark_1 = 0
Global $NONEAACTIVECOLOR    = 0x989898
$a = GUICreate("Test", 350, 98, 192, 124)
$c = GUICtrlCreateInput("", 88, 62, 201, 21)
$b = GUICtrlCreateInput($text_wenben, 88, 32, 201, 21)
GUICtrlSetColor(-1, $NONEAACTIVECOLOR)

GUISetState()
While 1
      _CheckInput($a, $b, "请输入qq号码", $text_wenben, $Mark_1)
          If  GUIGetMsg() = -3 Then ExitLoop
           
   WEnd
Func _CheckInput($hWnd, $ID, $InputDefText, ByRef $text_wenben, ByRef $Mark)
    If $Mark = 0 And _IsFocused($hWnd, $ID) And $text_wenben = $InputDefText Then
        $Mark = 1
        GUICtrlSetData($ID, "")
        GUICtrlSetColor($ID, 0x000000)
       $text_wenben = ""
           $d = GUICtrlRead($b)
          ;If $d <> "请输入qq号码" Then GUICtrlSendMsg($b, $EM_SETPASSWORDCHAR, 42, 0)
          ; 星号"*" 的ASCII字符序号为 42
    ElseIf $Mark = 1 And Not _IsFocused($hWnd, $ID) And $text_wenben = "" And GUICtrlRead($ID) = "" Then
        $Mark = 0
        $text_wenben = $InputDefText
        GUICtrlSetData($ID, $text_wenben)
        GUICtrlSetColor($ID, $NONEAACTIVECOLOR)
    EndIf
EndFunc

Func _IsFocused($hWnd, $nCID)
    Return ControlGetHandle($hWnd, '', $nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd))
        
EndFunc
发表于 2014-7-21 22:04:43 | 显示全部楼层
回复 9# qsy666888

不能理解你代码的作用或意图!
所以,我对此表示无能为力!
两个INPUT控件是用来作什么?
一个用来显示提示文本?
另一个用来获取Q号和密码?
没必要这样弄吧, 可以简洁点!
 楼主| 发表于 2014-7-21 22:12:11 | 显示全部楼层
回复 10# user3000
我是做一个示例,
下面那个input是一个无用的控件,是为第一个input设立的(把鼠标指针移到第二个input上,这样才能显示出第一个input的效果),我就是看到qq登录有这样的效果
发表于 2014-7-21 22:24:15 | 显示全部楼层
回复 11# qsy666888
更糊涂了,QQ登录时不是有两个INPUT控件吧
 楼主| 发表于 2014-7-21 22:27:45 | 显示全部楼层
是的,我是想先把这个输入密码这个功能弄出来
 楼主| 发表于 2014-7-21 22:27:56 | 显示全部楼层
本帖最后由 qsy666888 于 2014-7-21 22:29 编辑

回复 12# user3000

是的,我是想先把这个输入密码这个效果弄出来(就是没有输入的时候显示输入密码字样,如果输入了密码,就是用星号显示)
 楼主| 发表于 2014-7-21 22:50:04 | 显示全部楼层
回复 12# user3000

能帮我改一下吗,大侠,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-1 13:39 , Processed in 0.080347 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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