如何让GUICtrlCreateCombo 控件支持拖放操作?
让GUICtrlCreateInput 控件实现拖放偶是可以实现了,但GUICtrlCreateCombo 控件还做不到。仍苦思解法中……究竟GUICtrlCreateCombo 控件是否支持拖放操作?若可以支持拖放操作,要如何实现呢?
[ 本帖最后由 renren 于 2008-7-25 00:41 编辑 ] 请请高人指点~~ 。谢谢了! 直接支持的貌似只有INPUT和EDIT
可以通过整个GUI的拖放处理间接把数据更新到其他控件, 譬如COMBO或LIST 还是不太清楚啊!具体如何作? 我用过你所说的办法,可惜变成死循环出不来了。呜呜~
UniExtract 1.42 就是用autoit编的,那个Combo就支持拖放,可惜我看不懂代码了。晕!
高手还请不吝指点啊!
[ 本帖最后由 ollydbg 于 2008-6-29 21:41 编辑 ] 恳求三恨斑竹指点一下拉!! 你试试这样;
UniExtract 也是这么做的
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("文件拖放测试", 262, 116, -1, -1,-1,$WS_EX_ACCEPTFILES)
$Combo1 = GUICtrlCreateCombo("", 8, 8, 241, 25)
$dropzone = GUICtrlCreateLabel("", 8,8, 241, 25)
GUICtrlSetBkColor($dropzone, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetState($dropzone, $GUI_DISABLE)
GUICtrlSetState($dropzone, $GUI_DROPACCEPTED)
$Edit1 = GUICtrlCreateEdit("", 8, 48, 241, 57, BitOR($ES_READONLY,$ES_WANTRETURN), 0)
GUICtrlSetData(-1, "支持文件拖放的combo控件,其实是利用了窗口拖放,且只能工作于事件模式. PCBAR 08.07.09")
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_DROPPED, "GUI_Drop")
GUISetOnEvent($GUI_EVENT_CLOSE, "GUI_Exit")
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func GUI_Exit()
Exit
EndFunc
func GUI_Drop()
$file=@GUI_DragFile&"|"
GUICtrlSetData($Combo1, $file,@GUI_DragFile)
EndFunc
谢谢PCBAR 指点!~ 很好的代码啊,以后肯定会用到的。
[ 本帖最后由 ollydbg 于 2008-7-15 21:11 编辑 ] 好东东
我顶哈 UniExtract是开源的,下载源码学习一下。 pcbar,强人啊 谁有UniExtract源码,给个链接吧,学习一下。。 :face (14):好象不行 回复 7# pcbar
回到一招了 学习了,但要是有多个comb或input该如何判别?
页:
[1]
2