ollydbg 发表于 2008-5-10 11:43:18

如何让窗口和里面的控件都支持文件拖放功能?【已解决】

如何让窗口和里面的控件都支持文件拖放功能? 找了好久一直没有找到方法
能真正实现,请高手指教一下,毕竟是很常用也是很实用的功能。比如在下
面的例子中, 把文件拖到窗口就“当”的一声晌,原因究竟出在哪里呢?


#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$AForm1 = GUICreate("运行", 415, 114,-1,-1, -1, $WS_EX_ACCEPTFILES )
$Combo1 = GUICtrlCreateCombo("", 24, 40, 273, 25)
GUICtrlSetState ( $Combo1, $GUI_ACCEPTFILES )
GUICtrlSetState ( $Combo1, $GUI_DROPACCEPTED )
$Button1 = GUICtrlCreateButton("运行", 312, 40, 89, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

      EndSwitch
WEnd

[ 本帖最后由 ollydbg 于 2008-5-16 10:19 编辑 ]

netegg 发表于 2008-5-10 13:40:47

似乎应该是setstyle吧

ollydbg 发表于 2008-5-10 22:17:27

楼上的能说详细点吗?

漠北雪~狼 发表于 2008-5-11 11:22:39

$WS_EX_ACCEPTFILES , 0x00000010 ,允许(用户)通过拖放让被创建的GUI窗口中的编辑框/输入控件接受文件名.该控件也必须具有 $GUI_ACCEPTFILES 状态(由 GUICtrlSetState 设置).

Edit 或 Input 才可以具有拖放功能,在窗口具有$WS_EX_ACCEPTFILES样式后,在控件后加上这句:
GUICtrlSetState(-1, $GUI_ACCEPTFILES)

ollydbg 发表于 2008-5-16 10:19:11

谢谢楼上的回答!!

ollydbg 发表于 2008-6-5 20:50:40

目前只能拖放到编辑框才生效,只是拖到窗体上也不行,会“当”一声响!还请高手指点。

llztt 发表于 2008-6-5 21:34:07

需要DLLCALL的, 去autoitscript找吧

lynfr8 发表于 2009-5-30 18:28:13

http://www.autoitx.com/forum.php?mod=viewthread&tid=1191&page=1#pid11267
如何让GUICtrlCreateCombo 控件支持拖放操作?

lynfr8 发表于 2009-6-5 19:10:51

目前只能拖放到编辑框才生效,只是拖到窗体上也不行,会“当”一声响!还请高手指点。
ollydbg 发表于 2008-6-5 20:50 http://www.autoitx.com/images/common/back.gif

自己加个声音不就行了
SoundPlay(@WindowsDir
&
"\media\tada.wav",1)

xinnetchina 发表于 2009-6-10 17:41:07

:face (21):

iamwonvy 发表于 2010-3-6 20:08:27

hai 没找到我想要的答案

xx44t10 发表于 2012-3-25 17:12:31

回复 4# 漠北雪~狼


    狼兄.我按你这种方法 .可以实现拖放.我在主窗口用一个按钮实现调用子窗口后.我关闭子窗口然而.这时候的主窗口 就会没反应 拖放效果没了.这是怎么回事~?
页: [1]
查看完整版本: 如何让窗口和里面的控件都支持文件拖放功能?【已解决】