laojikelly 发表于 2009-4-20 10:25:44

我已经可以实现了。谢谢。。。
改天再发上来。。。

My2009 发表于 2010-8-13 16:25:48

做个记号。

kisyan 发表于 2010-9-13 01:44:06

#include <WinAPI.au3>

If not IsDeclared("WM_CHAR") Then CONST $WM_CHAR = 0x102
If not IsDeclared("WM_PASTE") Then CONST $WM_PASTE = 0x302
If not IsDeclared("WM_SETTEXT") Then CONST $WM_SETTEXT = 0xc

$hGUI = GUICreate("Test", 200, 100)

$iIptTest = GUICtrlCreateInput("", 20, 20, 160, 20)
$hIpt = GUICtrlGetHandle(-1)

$hIptProc = DllCallbackRegister("_IptProc", "int", "hWnd;uint;wparam;lparam")
$pIptProc = DllCallbackGetPtr($hIptProc)
$hOldProc = _WinAPI_SetWindowLong($hIpt, -4, $pIptProc)

GUISetState()

Do
Until guiGetMsg() = -3


Func _IptProc($hWnd, $iMsg, $wParam, $lParam)
      ConsoleWrite("0x" & Hex($iMsg) & @CRLF)
      If $iMsg = $WM_CHAR Then
                If $wparam <> 8 And StringRegExp(Chr($wparam), "") = 0 Then
                        _WinAPI_MessageBeep(2)
                        Return False
                EndIf
      ElseIf $iMsg = $WM_PASTE Then
                If StringRegExp(ClipGet(), "[\x20-\x7f]") Then Return False
      ElseIf $iMsg = $WM_SETTEXT Then
                _WinAPI_MessageBeep(2)
                Return False
      EndIf
      Return _WinAPI_CallWindowProc($hOldProc, $hWnd, $iMsg, $wParam, $lParam)
EndFunc ;==>_IptProc()代码能不能修改成只能前17位是数字 第18位可以是数字和字母?
页: 1 [2]
查看完整版本: [求助]如何判断输入框中是否输入有字符??