关于input输入显示问题?请教大大们(已解决)
本帖最后由 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)
请教大大们,该如何写,谢谢 回复 1# qsy666888
xxxxxxxxx 就是 GUICtrlSetStyle 回复 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 回复 3# qsy666888
Au3在GUICtrlSetStyle函数帮助里说明了:
有部分样式不能修改,请参考 MSDN 文档 documentation.
MSDN文档:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775464(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) 不行,不能实现星号显示 回复 4# xiehuahere
不行,不能实现星号显示 难道大大们就没有一个人知道吗? 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
IfGUIGetMsg() = -3 Then ExitLoop
WEnd回复 7# qsy666888 回复 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)
IfGUIGetMsg() = -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 回复 9# qsy666888
不能理解你代码的作用或意图!
所以,我对此表示无能为力!
两个INPUT控件是用来作什么?
一个用来显示提示文本?
另一个用来获取Q号和密码?
没必要这样弄吧, 可以简洁点! 回复 10# user3000
我是做一个示例,
下面那个input是一个无用的控件,是为第一个input设立的(把鼠标指针移到第二个input上,这样才能显示出第一个input的效果),我就是看到qq登录有这样的效果 回复 11# qsy666888
更糊涂了,QQ登录时不是有两个INPUT控件吧 是的,我是想先把这个输入密码这个功能弄出来 本帖最后由 qsy666888 于 2014-7-21 22:29 编辑
回复 12# user3000
是的,我是想先把这个输入密码这个效果弄出来(就是没有输入的时候显示输入密码字样,如果输入了密码,就是用星号显示) 回复 12# user3000
能帮我改一下吗,大侠,谢谢
页:
[1]
2