c8520c 发表于 2017-5-26 09:49:45

关于拖放文件在任意控件上不能指定控件输出[已解决]

本帖最后由 c8520c 于 2017-6-14 18:10 编辑

各位,这个问题我也自己也觉得让人误会,还是看下面的吧。

我的程序有两个文本框,三个输入框,组合是:文本框2 = 文本框1+输出框1.2.3
目前已经实现了,只要把文件拖放到文本框1控件上,就在文本框1控件上输出文件路径,如此类推
但是,我想实现的是,无论拖放文件到任意控件上,它都只在文本框1输出文件路径(拖放文件到文本框2或输出框1.2.3,但只在文本框1输出)

1361739590 发表于 2017-5-26 10:24:38

你是怎么实现把文件拖放到任意控件上,就在此控件上输出文件路径。
把这边改一下。

chzj589 发表于 2017-5-26 11:28:33

回复 1# c8520c

是这个意思?

c8520c 发表于 2017-5-26 12:38:25

回复 2# 1361739590


    不好意思。刚刚没注意,现在文字改了一些,这样应该比较好述清。

c8520c 发表于 2017-5-26 12:41:44

回复 3# chzj589


    界面是一样,但这个效果不是我想要的,我想要的是把文件拖放到前面四个中的任何一个,但这四个中不会有输出,只在最后一个框输出

chzj589 发表于 2017-5-26 13:03:23

回复chzj589


    界面是一样,但这个效果不是我想要的,我想要的是把文件拖放到前面四个中的任何一 ...
c8520c 发表于 2017-5-26 12:41 http://www.autoitx.com/images/common/back.gif

不管拖进那一个,点击确定



chzj589 发表于 2017-5-26 13:19:56

回复 6# chzj589

数学太差

67=42
76=??????

84063016 发表于 2017-5-26 13:21:21

你是怎么实现把文件拖放到任意控件上,就在此控件上输出文件路径。

1361739590 发表于 2017-5-26 13:22:56

回复 4# c8520c


   
把你实现把文件拖放到任意控件上,就在此控件上输出文件路径。这个功能的代码贴上了。
帮你改一下。

c8520c 发表于 2017-5-26 20:52:09

本帖最后由 c8520c 于 2017-5-26 20:58 编辑

回复 9# 1361739590 #Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include<Array.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("批量生成", 470, 440, 200, 130,-1,0x00000010)

$Label1 = GUICtrlCreateLabel("将 数字 改为 *", 8, 0, 350, 25)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Edit1 = GUICtrlCreateEdit('', 8, 30, 455, 50)
GUICtrlSetState(-1, 8)
$Label2 = GUICtrlCreateLabel("开始数", 8, 90, 60, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit2 = GUICtrlCreateInput("", 72, 90, 50, 21)
GUICtrlSetState(-1, 8)
$Label3 = GUICtrlCreateLabel("结束数", 136, 90, 60, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit3 = GUICtrlCreateInput("", 200, 90, 50, 21)
GUICtrlSetState(-1, 8)

$Label4 = GUICtrlCreateLabel("位数", 264, 90, 44, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit4 = GUICtrlCreateInput("", 307, 90, 50, 21)
GUICtrlSetState(-1, 8)

$Edit5 = GUICtrlCreateEdit("", 8, 152, 454, 278)
GUICtrlSetState(-1, 8)
$Checkbox1 = GUICtrlCreateCheckbox("添加img src", 373, 90, 81, 25)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")

$Button1 = GUICtrlCreateButton("生成", 8, 118, 44, 28)
$Button2 = GUICtrlCreateButton("保存", 56, 118, 44, 28)

GUISetState()
While 1
WEnd以下代码可以放进while 与wend,但是如果再次拖放文件到第2至第4个控件,此时第2至第4个控件的内容会改变,但我不想改变        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                       
                Case -13
                        $mouse = GUIGetCursorInfo($Form1)
                        $_str = ControlCommand($Form1, "", $mouse, "GetSelected","")
                                                ControlSetText ( $Form1, "", "Edit1",$_str)
                                               
If$mouse <> 4 Then
ControlSetText ( $Form1, "", $mouse,"")
EndIf

c8520c 发表于 2017-5-26 20:57:41

回复 7# chzj589


    我实现的是自动,而不是手动#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include<Array.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("批量生成", 470, 440, 200, 130,-1,0x00000010)

$Label1 = GUICtrlCreateLabel("将 数字 改为 *", 8, 0, 350, 25)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
$Edit1 = GUICtrlCreateEdit('', 8, 30, 455, 50)
GUICtrlSetState(-1, 8)
$Label2 = GUICtrlCreateLabel("开始数", 8, 90, 60, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit2 = GUICtrlCreateInput("", 72, 90, 50, 21)
GUICtrlSetState(-1, 8)
$Label3 = GUICtrlCreateLabel("结束数", 136, 90, 60, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit3 = GUICtrlCreateInput("", 200, 90, 50, 21)
GUICtrlSetState(-1, 8)

$Label4 = GUICtrlCreateLabel("位数", 264, 90, 44, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Edit4 = GUICtrlCreateInput("", 307, 90, 50, 21)
GUICtrlSetState(-1, 8)

$Edit5 = GUICtrlCreateEdit("", 8, 152, 454, 278)
GUICtrlSetState(-1, 8)
$Checkbox1 = GUICtrlCreateCheckbox("添加img src", 373, 90, 81, 25)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")

$Button1 = GUICtrlCreateButton("生成", 8, 118, 44, 28)
$Button2 = GUICtrlCreateButton("保存", 56, 118, 44, 28)

GUISetState()
While 1
WEnd以下代码可以放进while 与wend,但是如果再次拖放文件到第2至第4个控件,此时第2至第4个控件的内容会改变,但我不想改变        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                       
                Case -13
                        $mouse = GUIGetCursorInfo($Form1)
                        $_str = ControlCommand($Form1, "", $mouse, "GetSelected","")
                                                ControlSetText ( $Form1, "", "Edit1",$_str)
                                               
If$mouse <> 4 Then
ControlSetText ( $Form1, "", $mouse,"")
EndIf

Alam 发表于 2017-5-26 21:28:04

自己的程序,改变控件的文本应该用 GuiCtrlSetDataCase -13
                        $mouse = GUIGetCursorInfo($Form1)
                                                If @error Then ContinueLoop
                        $_str = GUICtrlRead($mouse)
                                                GUICtrlSetData($edit5, $_str)
                        If $mouse <> $edit5 Then GUICtrlSetData($mouse, '')

c8520c 发表于 2017-5-27 09:08:39

回复 12# Alam


    呃,我发现乱了,我这样说吧。
EDIT5控件拖放文件 -> 输出到EDIT1 -> 生成数据到EDIT5 -> 二次EDIT5控件拖放文件 -> 删除目前EDIT1中的数据,并二次输出到EDIT1,同时清空EDIT5生成数据
我想知道怎么去掉 “同时清空EDIT5生成数据”,不然的话,三次,四次拖放文件都是瞎弄。
同时,谢谢你提供了代码,我下班后试试看。

chzj589 发表于 2017-5-27 09:14:32

回复 11# c8520c

怎么看不到你写的代码?
手动能达到,自动就也能达到

c8520c 发表于 2017-5-27 09:19:00

回复 14# chzj589


    今晚我把程序上传吧,一个仿迅雷批量下载的东西,只是按自己想要的效果写的。。。。
页: [1] 2
查看完整版本: 关于拖放文件在任意控件上不能指定控件输出[已解决]