lenlydia 发表于 2011-5-18 18:56:04

怎么去掉au3的友好提示?[已解决]

本帖最后由 lenlydia 于 2011-5-18 23:53 编辑

比如输入框,我强制使用$ES_NUMBER参数后,在输入字母的时候会提示"不能接受的字符",但我不想出现这样的提示。有什么办法可以解决吗?先谢谢

netegg 发表于 2011-5-18 20:56:38

可以用消息实现

lenlydia 发表于 2011-5-18 21:38:50

回复 2# netegg


    我这方面不是很熟悉,能给个列子吗?

3mile 发表于 2011-5-18 21:59:21

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#Region ### START Koda GUI section ### Form=c:\documents and settings\administrator\my documents\form1.kxf
$Form1 = GUICreate("test", 409, 260, 434, 170)
$Label1 = GUICtrlCreateLabel("X:", 40, 32, 86, 17)
$Input1 = GUICtrlCreateInput("", 120, 32, 121, 21);, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

      EndSwitch
WEnd



Func MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)
      Local Const $EN_CHANGE = 0x300

      Local $nNotifyCode = BitShift($wParam, 16)
      Local $nID = BitAND($wParam, 0xFFFF)
      Local $hCtrl = $lParam
      If $nNotifyCode = $EN_CHANGE Then
                        if StringRegExp(GUICtrlRead($Input1),'[^\d]+',0) then
                                GUICtrlSetData($Input1,StringRegExpReplace(GUICtrlRead($Input1),'[^\d]+',''))
                                ToolTip("error")
                        EndIf
      EndIf
EndFunc   ;==>MY_WM_COMMAND

ceoguang 发表于 2011-5-18 22:12:16

这个是不AU3的提示,而是edit等控件特有的的消息
但是这个消息是可控的。
要实现的话就监听控件的wm_char等消息,出现非期待值时发送EM_SHOWBALLOONTIP来设置自身的提示,这样就可以覆盖默认的提示了.

lenlydia 发表于 2011-5-18 23:52:51

谢谢各位的帮助。{:face (356):}
页: [1]
查看完整版本: 怎么去掉au3的友好提示?[已解决]