#include <GUIConstantsEx.au3>
GUICreate('Show/Hide', 200, 100)
$nPassInput = GUICtrlCreateInput('My Password', 20, 20, 160, 20)
$nCheckbox = GUICtrlCreateCheckbox('', 75, 50, 50, 20)
If Random(0, 1, 1) Then GUICtrlSetState(-1, $GUI_CHECKED)
_ShowHidePassChr($nCheckbox, $nPassInput)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $nCheckbox
_ShowHidePassChr($nCheckbox, $nPassInput)
EndSwitch
WEnd
Func _ShowHidePassChr($iID_Checkbox, $iID_Input, $s_PassChr = Default)
Local $a_Info[2][2] = [[0],['Hide', 'Show']], $i_Ind
Local Const $__EM_SETPASSWORDCHAR = 0xCC
If IsKeyword($s_PassChr) Then
$a_Info[0][1] = 9679
Else
$a_Info[0][1] = Asc($s_PassChr)
EndIf
$i_Ind = BitAND(GUICtrlRead($iID_Checkbox), $GUI_CHECKED)
GUICtrlSendMsg($iID_Input, $__EM_SETPASSWORDCHAR, $a_Info[0][$i_Ind], 0)
GUICtrlSetState($iID_Input, $GUI_FOCUS)
GUICtrlSetState($iID_Checkbox, $GUI_FOCUS)
GUICtrlSetData($iID_Checkbox, $a_Info[1][$i_Ind])
EndFunc ;==>_ShowHidePassChr