找回密码
 加入
搜索
楼主: 261869247

[GUI管理] 输入框 只能输入汉字【已解决】

 火.. [复制链接]
发表于 2010-7-20 22:38:10 | 显示全部楼层
呵呵,也发现这个问题了。再来个消息模式的
  1. #include <GUIComboBox.au3>
  2. #include <GuiConstantsEx.au3>
  3. #include <WindowsConstants.au3>
  4. #include <Constants.au3>
  5. Global $hGUI
  6. Global Const $EN_CHANGE = 0x300
  7. $hGUI = GUICreate("检测Combo有键盘输入", 400, 96)
  8. $hinput = GUICtrlCreateInput("",2,5,396,20);
  9. GUISetState()
  10. GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
  11. Do
  12. Until GUIGetMsg() = $GUI_EVENT_CLOSE
  13. GUIDelete()
  14. Func WM_COMMAND($hWinHandle, $iMsg, $wParam, $lParam)
  15. If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WINAPI_LoWord($wParam) = $hinput Then
  16.          Local $read,$Re,$ReRead
  17.         $read=GUICtrlRead($hinput)
  18.         $InputSplit = StringRegExp($read, '.', 3)
  19.         For $n=0 To UBound($InputSplit)-1
  20.         If StringRegExp($InputSplit[$n],'[^\x00-\xff]',0)=0 Then
  21.                 $read=StringReplace($read,$InputSplit[$n],'')
  22.                 GUICtrlSetData($hinput,$Read)
  23.         EndIf
  24.         Next
  25. EndIf
  26. EndFunc
复制代码

评分

参与人数 1威望 +2 收起 理由
afan + 2

查看全部评分

发表于 2010-7-20 22:42:13 | 显示全部楼层
14楼的改造代码,应该可以解决快速输入半角字符或在已输入的字符中插入字符或粘贴时发生错误的问题。
  1. #include <EditConstants.au3>
  2. #include <GUIConstantsEx.au3>
  3. #include <WindowsConstants.au3>
  4. #include <array.au3>
  5. Local $InputSplit, $read
  6. $Form1 = GUICreate("Form1", 256, 105, -1, -1)
  7. $Input1 = GUICtrlCreateInput("", 24, 40, 190, 21, $ES_AUTOHSCROLL)
  8. AdlibRegister("scan", 50)
  9. GUISetState(@SW_SHOW)

  10. While 1
  11.         $nMsg = GUIGetMsg()
  12.         Switch $nMsg
  13.                 Case $GUI_EVENT_CLOSE
  14.                         Exit

  15.         EndSwitch
  16. WEnd


  17. Func scan()
  18.         $read=GUICtrlRead($input1)
  19.         $InputSplit = StringRegExp($read, '.', 3)
  20.         For $n=0 To UBound($InputSplit)-1
  21.         If StringRegExp($InputSplit[$n],'[^\x00-\xff]',0)=0 Then
  22.                 $read=StringReplace($read,$InputSplit[$n],'')
  23.                 GUICtrlSetData($input1,$Read)
  24.         EndIf
  25.         Next
  26. EndFunc   ;==>scan
复制代码

评分

参与人数 2贡献 +8 收起 理由
lynfr8 + 5 很棒的见解
afan + 3

查看全部评分

发表于 2010-7-20 22:48:37 | 显示全部楼层
16# 17# 都不错,学习了~~
发表于 2010-7-21 05:06:26 | 显示全部楼层
学习了~~..
 楼主| 发表于 2010-7-23 13:19:56 | 显示全部楼层
受教了 非常不错 呵呵 每天都在学习!
 楼主| 发表于 2010-7-23 13:20:21 | 显示全部楼层
     谢谢大家!
发表于 2010-7-23 15:08:31 | 显示全部楼层
在6# xsjtxy 兄弟的基础上增加了一个功能,可以限制全角数字及字母的输入
  1. #include <EditConstants.au3>
  2. #include <GUIConstantsEx.au3>
  3. #include <WindowsConstants.au3>

  4. $Form1 = GUICreate("Form1", 500, 150, -1, -1)
  5. dim $ii = ""
  6. $Input1 = GUICtrlCreateInput($ii, 30, 50, 440, 21,$ES_WANTRETURN)
  7. GUISetState(@SW_SHOW)
  8. AdlibRegister("Input",10)
  9. While 1
  10.         $nMsg = GUIGetMsg()
  11.         Switch $nMsg
  12.                 Case $GUI_EVENT_CLOSE
  13.                         Exit

  14.         EndSwitch
  15. WEnd
  16. func Input()
  17. $i = GUICtrlRead($Input1)
  18. if $i = $ii then Return
  19. ; 半角符的数字及英文
  20. $i = StringReplace($i, "0", "")
  21. $i = StringReplace($i, "1", "")
  22. $i = StringReplace($i, "2", "")
  23. $i = StringReplace($i, "3", "")
  24. $i = StringReplace($i, "4", "")
  25. $i = StringReplace($i, "5", "")
  26. $i = StringReplace($i, "6", "")
  27. $i = StringReplace($i, "7", "")
  28. $i = StringReplace($i, "8", "")
  29. $i = StringReplace($i, "9", "")
  30. $i = StringReplace($i, "a", "")
  31. $i = StringReplace($i, "b", "")
  32. $i = StringReplace($i, "c", "")
  33. $i = StringReplace($i, "d", "")
  34. $i = StringReplace($i, "e", "")
  35. $i = StringReplace($i, "f", "")
  36. $i = StringReplace($i, "g", "")
  37. $i = StringReplace($i, "h", "")
  38. $i = StringReplace($i, "i", "")
  39. $i = StringReplace($i, "j", "")
  40. $i = StringReplace($i, "k", "")
  41. $i = StringReplace($i, "l", "")
  42. $i = StringReplace($i, "m", "")
  43. $i = StringReplace($i, "n", "")
  44. $i = StringReplace($i, "o", "")
  45. $i = StringReplace($i, "p", "")
  46. $i = StringReplace($i, "q", "")
  47. $i = StringReplace($i, "r", "")
  48. $i = StringReplace($i, "s", "")
  49. $i = StringReplace($i, "t", "")
  50. $i = StringReplace($i, "u", "")
  51. $i = StringReplace($i, "v", "")
  52. $i = StringReplace($i, "w", "")
  53. $i = StringReplace($i, "x", "")
  54. $i = StringReplace($i, "y", "")
  55. $i = StringReplace($i, "z", "")

  56. ; 全角符的数字及英文
  57. $i = StringReplace($i, "0", "")
  58. $i = StringReplace($i, "2", "")
  59. $i = StringReplace($i, "3", "")
  60. $i = StringReplace($i, "4", "")
  61. $i = StringReplace($i, "5", "")
  62. $i = StringReplace($i, "6", "")
  63. $i = StringReplace($i, "7", "")
  64. $i = StringReplace($i, "8", "")
  65. $i = StringReplace($i, "9", "")
  66. $i = StringReplace($i, "a", "")
  67. $i = StringReplace($i, "b", "")
  68. $i = StringReplace($i, "c", "")
  69. $i = StringReplace($i, "d", "")
  70. $i = StringReplace($i, "e", "")
  71. $i = StringReplace($i, "f", "")
  72. $i = StringReplace($i, "g", "")
  73. $i = StringReplace($i, "h", "")
  74. $i = StringReplace($i, "i", "")
  75. $i = StringReplace($i, "j", "")
  76. $i = StringReplace($i, "k", "")
  77. $i = StringReplace($i, "l", "")
  78. $i = StringReplace($i, "m", "")
  79. $i = StringReplace($i, "n", "")
  80. $i = StringReplace($i, "o", "")
  81. $i = StringReplace($i, "p", "")
  82. $i = StringReplace($i, "q", "")
  83. $i = StringReplace($i, "r", "")
  84. $i = StringReplace($i, "s", "")
  85. $i = StringReplace($i, "t", "")
  86. $i = StringReplace($i, "u", "")
  87. $i = StringReplace($i, "v", "")
  88. $i = StringReplace($i, "w", "")
  89. $i = StringReplace($i, "x", "")
  90. $i = StringReplace($i, "y", "")
  91. $i = StringReplace($i, "z", "")
  92. GUICtrlSetData($Input1,$i)
  93. $ii = $i
  94. endfunc
复制代码

评分

参与人数 1金钱 +35 贡献 +1 收起 理由
lynfr8 + 35 + 1

查看全部评分

发表于 2010-7-23 16:30:59 | 显示全部楼层
P版出过题的。我忘记叫什么了。
记得有很多人都是先输入消息 判断 然后删除。
P版的代码是直接截取消息
发表于 2010-7-28 13:44:06 | 显示全部楼层
學習了.......  不知道是不是有 P版 的 源碼
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-9-21 00:24 , Processed in 0.069453 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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