dunphy 发表于 2014-7-25 22:02:07

【已解决】input2框双击事件遇到的问题

本帖最后由 dunphy 于 2014-7-26 01:58 编辑

如图,在input2框里输入66,双击它后,输入的字符变蓝,并复制到剪贴版上,这个CASE事件该如何来写,

我只知道将INPUT2输入框里的值读取出来用ClipPut(GUICtrlRead($Input2))    还请大侠指点。

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Clipboard.au3>
#Include <WinAPI.au3>

#Region
Global $Form1 = GUICreate("如何复制", 348, 113, 724, 542, -1, 0)
Global $Input1 = GUICtrlCreateInput("", 88, 32, 65, 21)
Global $Label2 = GUICtrlCreateLabel("对应值:", 176, 32, 52, 17)
Global $Input2 = GUICtrlCreateInput("", 240, 32, 65, 21)
#EndRegion

_Main()
Exit
Func _Main()
      GUISetState(@SW_SHOW)

While 1
      Local $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                        
EndSwitch   
WEnd
EndFunc;========>_main                        

ak47gglllk 发表于 2014-7-25 23:14:14

不懂,帮顶。小白求进步

ak47gglllk 发表于 2014-7-25 23:14:18

不懂,帮顶。小白求进步

austere 发表于 2014-7-25 23:23:54

回复 1# dunphy

论坛有例子的,我稍微修改一下发下吧#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Clipboard.au3>
#include <WinAPI.au3>

#Region
Global $Form1 = GUICreate("如何复制", 348, 113, 724, 542, -1, 0)
Global $Input1 = GUICtrlCreateInput("", 88, 32, 65, 21)
Global $Label2 = GUICtrlCreateLabel("对应值:", 176, 32, 52, 17)
Global $Input2 = GUICtrlCreateInput("", 240, 32, 65, 21)
#EndRegion
$wProcNew = DllCallbackRegister("_MyWindowProc", "ptr", "hwnd;uint;long;ptr")
$wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($Input2), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))

_Main()
Exit
Func _Main()
        GUISetState(@SW_SHOW)

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

                EndSwitch
        WEnd
EndFunc   ;==>_Main

Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
        Switch $uiMsg
                Case $WM_LBUTTONDBLCLK
                        $ss = GUICtrlRead($Input2)
                        If $ss = "" Then
                                MsgBox(64, "提示", "没有复制任何数据")
                        Else
                                ClipPut($ss)
                                MsgBox(64, "提示", "数据已经复制到剪切板")
                        EndIf
        EndSwitch
        Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc   ;==>_MyWindowProc

dunphy 发表于 2014-7-26 00:29:30

谢谢 austere,我仔佃研

dunphy 发表于 2014-7-29 18:49:31

本帖最后由 dunphy 于 2014-7-29 18:50 编辑

回复 4# austere


   请问一下Austere大侠,我想加一个DllCallbackFree 是不是应该加在main()上一行吗??

austere 发表于 2014-7-30 17:07:47

回复 6# dunphy

根据你的代码自己测试一下,前后应该都没有影响~

即即 发表于 2014-8-1 09:36:43

回复 4# austere


    不错,学习了。
页: [1]
查看完整版本: 【已解决】input2框双击事件遇到的问题