6 posts in this topic
Hi - I am using $WS_EX_ACCEPTFILES and $GUI_DROPACCEPTED to have an Input control accept a filename. When a file is dragged into the input control and the keyboard caret is also focused in the input control - then the file name gets added at the location of the keyboard caret. What I would like is that whenever a file is dragged into the input control - that the file will replace the entire contents of the input control. Does anyone know how I can do this?
Steps to reproduce problem:
1. Drag a file into the input control. The filename will show in the input control.
2. The filename will be selected. Press <right arrow> to unselect the text and move the keyboard caret to the right of the text.
3. Drag a second file into the input control. PROBLEM: The input control will now have two filenames in it.
Screenshot showing problem after two files have been dragged:
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) $GUI = GUICreate("Test GUI", 800, 100, -1, -1, BitOr($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX ), $WS_EX_ACCEPTFILES) GUISetOnEvent($GUI_EVENT_DROPPED, "On_Drop_InFilename") GUISetOnEvent($GUI_EVENT_CLOSE, '_exit') GUICtrlCreateLabel('File:', 2, 2) $inFilename = GUICtrlCreateInput('', 28, 0, 740, 20) GUICtrlSetState(-1, $GUI_DROPACCEPTED) GUISetState(@SW_SHOW) Func On_Drop_InFilename() Local $filename = GUICtrlRead($inFilename) If $filename <> "" Then ConsoleWrite("Drag drop found filename in input control: " & $filename & @LF) EndIf EndFunc Func _exit() Exit EndFunc While 1 Sleep(100) WEnd