ReFran Posted November 10, 2006 Posted November 10, 2006 (edited) Hi, I want to change a bigger script (at least form me) to $GUI_DROPACCEPTED based on examples for Global $WM_DROPFILES = 0x233. Perhaps someone can have a look at the following extracted scriptlines with the LV-fields flicker. If I do the same on one Main_GUI with a LV on a tab it works fine (-without flickering -), but if it is possible I want to keep the structure of the script and not rewrite all. Is there any know limitation that $GUI_DROPACCEPTED / $WM_DROPFILES works only ont he Main_GUI. Best regards, Reinhard Edit: Forgot to remark that without Case $GUI_EVENT_DROPPED the Tabs are working fine. expandcollapse popup#include <GUIConstants.au3> #include <GuiTreeView.au3> #include <GuiListView.au3> #include <Array.au3> Global $WM_DROPFILES = 0x233 Global $gaDropFiles[1] Global $main_GUI,$ok_button,$cancel_button,$Scripts_GUI, $Boomarks_GuI,$aTree,$hTree, $Files_GUI, $Info $main_GUI = GUICreate("PDF Manager",560,520,20,20,BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS)) ;GUICtrlCreateGroup ( "", 1, 1,550,1); MENU ;GUISetBkColor(0xB0A0B0) $MMenF = GUICtrlCreateMenu ("&File") $MMenFO = GUICtrlCreateMenuitem ("Open",$MMenF) $MMenFS1 = GUICtrlCreateMenuitem ("",$MMenF,2) $MMenFR = GUICtrlCreateMenu ("Recent Files",$MMenF,1) $MMenFE = GUICtrlCreateMenuitem ("Exit",$MMenF) $MMenE = GuiCtrlCreateMenu("&Edit") $MMenT = GuiCtrlCreateMenu("&Tools") $MMenTE = GUICtrlCreateMenuitem ("Explorer",$MMenT) $MMenTB = GUICtrlCreateMenuitem ("MetaEdit",$MMenT) $MMenH = GuiCtrlCreateMenu("&Help") $Button_6 = GuiCtrlCreateButton("", 0, 1, 560, 2, -1, $WS_EX_STATICEDGE) $OutputFileLab = GUICtrlCreateLabel ("Output File:", 10, 455,-1,-1,$SS_NOTIFY) GUICtrlSetTip ($OutputFileLab, "Click here to select an Output file") $OutputFile = GUICtrlCreateInput ("C:\Test.pdf", 70, 455, 350, 20) $Ok_button = GUICtrlCreateButton("OK",428,455,60,20) $cancel_button = GUICtrlCreateButton("Cancel",490,455,60,20) $Info = "LV=No Files BM=No" $Status = GUICtrlCreateLabel($Info,10,440+40,540,15,BitOR($SS_SUNKEN, $SS_Center)) ;GUISetState() ;;;;;;;;;;; ==> End of Main GUI Definition;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Files_GUI = GUICreate("",520,400,20,40, $WS_CHILD,$WS_EX_ACCEPTFILES,$main_GUI) GUISetBkColor(0xA0A0B0); just for dimensing the child $listview = GUICtrlCreateListView ("Filename|SelPg |Pg|BM|Date |Path ",10,10,500,205, _ BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT)) GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES) GUICtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping GUISetState() ; creates the Boomarks child window that is implemented into the main GUI $Boomarks_GUI = GUICreate("",520,400,20,40,$WS_CHILD,-1,$main_GUI) GUISetBkColor(0xA0D0B0); just for dimensing the child ; creates the Scripts tab window that is implemented into the main GUI $Scripts_GUI = GUICreate("",520,400,20,40,$WS_CHILD,-1,$main_GUI);$WS_CHILD, GUISetBkColor(0x257788); just for dimensing the child ; creates the Settings window that is implemented into the main GUI $Settings_GUI = GUICreate("",520,400,20,40,$WS_CHILD,-1,$main_GUI) GUISetBkColor(0xCFA0B0); just for dimensing the child GUISwitch($main_GUI) $main_tab = GUICtrlCreateTab(10,10,540,440) $Files_tab = GUICtrlCreateTabItem("Files") $Boomarks_tab = GUICtrlCreateTabItem("Boomarks") $Scripts_tab = GUICtrlCreateTabItem("Scripts") $Settings_tab = GUICtrlCreateTabItem("Settings") GUICtrlCreateTabItem("") GUISetState() GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MAIN GUI LOOP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $cancel_button or $msg = $MMenFE ExitLoop Case $GUI_EVENT_DROPPED ; msgbox(0,"","Dropped") _GUICtrlListViewDeleteAllItems($Listview) For $i = 0 To UBound($gaDropFiles) - 1 GUICtrlCreateListViewItem($gaDropFiles[$i], $Listview) Next Case $msg = $main_tab $tab_item = GUICtrlRead($main_tab) Select Case $tab_item = 0 GUISetState(@SW_SHOW,$Files_GUI) GUISetState(@SW_HIDE,$Boomarks_GUI) GUISetState(@SW_HIDE,$Scripts_GUI) GUISetState(@SW_HIDE,$Settings_GUI) Case $tab_item = 1 GUISetState(@SW_HIDE,$Files_GUI) GUISetState(@SW_SHOW,$Boomarks_GUI) GUISetState(@SW_HIDE,$Scripts_GUI) GUISetState(@SW_HIDE,$Settings_GUI) ;GUICtrlSetState($Expand_button, $GUI_HIDE) Case $tab_item = 2 GUISetState(@SW_HIDE,$Files_GUI) GUISetState(@SW_HIDE,$Boomarks_GUI) GUISetState(@SW_SHOW,$Scripts_GUI) GUISetState(@SW_HIDE,$Settings_GUI) ;GUICtrlSetState($Expand_button, $GUI_HIDE) Case $tab_item = 3 GUISetState(@SW_HIDE,$Files_GUI) GUISetState(@SW_HIDE,$Boomarks_GUI) GUISetState(@SW_Hide,$Scripts_GUI) GUISetState(@SW_Show,$Settings_GUI) EndSelect EndSelect WEnd ;;;; <= End GUI Loop Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam) Local $nSize, $pFileName Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255) For $i = 0 To $nAmt[0] - 1 $nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0) $nSize = $nSize[0] + 1 $pFileName = DllStructCreate("char[" & $nSize & "]") DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize) ReDim $gaDropFiles[$i + 1] $gaDropFiles[$i] = DllStructGetData($pFileName, 1) $pFileName = 0 Next EndFunc ;==>WM_DROPFILES_FUNC Edited November 10, 2006 by ReFran
ReFran Posted November 11, 2006 Author Posted November 11, 2006 Started new from a early version and got it to work (also if I don't know where the difference/problem is). br, Reinhard
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now