nend Posted February 28, 2012 Share Posted February 28, 2012 (edited) I'm looking for while for a solution to this problem.I've a gui without controls and I need to drag and drop a picture to it.See the zip file for the code and the images[__CODE_PROTECTED]I2luY2x1ZGUgJmx0O0dESVBsdXMuYXUzJmd0OzxiciAvPgojaW5jbHVkZSAmbHQ7V2luZG93c0NvbnN0YW50cy5hdTMmZ3Q7PGJyIC8+CiNpbmNsdWRlICZsdDtHVUlDb25zdGFudHNFeC5hdTMmZ3Q7PGJyIC8+CiNpbmNsdWRlICZsdDtTdGF0aWNDb25zdGFudHMuYXUzJmd0OzxiciAvPgojSW5jbHVkZSAmbHQ7TWlzYy5hdTMmZ3Q7PGJyIC8+CjxiciAvPgpHbG9iYWwgJiMwMzY7R1VJLCAmIzAzNjtlZW5tYWFsZXhpdCA9IFRydWU8YnIgLz4KPGJyIC8+Ck9wdCgmcXVvdDtNb3VzZUNvb3JkTW9kZSZxdW90OywgMik8YnIgLz4KX0dESVBsdXNfU3RhcnR1cCgpPGJyIC8+CjxiciAvPgomIzAzNjtHVUkgPSBHVUlDcmVhdGUoJnF1b3Q7JnF1b3Q7LCAxOTgsIDIxMCwgMTIwLCAxMjAsICYjMDM2O1dTX1BPUFVQLCBCaXRPUigmIzAzNjtXU19FWF9MQVlFUkVELCAmIzAzNjtXU19FWF9UT09MV0lORE9XLCAmIzAzNjtXU19FWF9BQ0NFUFRGSUxFUykpPGJyIC8+CiYjMDM2O0FjaHRlcmdyb25kbG9hZCA9IF9HRElQbHVzX0ltYWdlTG9hZEZyb21GaWxlKEBTY3JpcHREaXIgJmFtcDsgJnF1b3Q7JiMwOTI7QWNodGVyZ3JvbmQucG5nJnF1b3Q7KTxiciAvPgomIzAzNjtmcmFtZSA9IF9HRElQbHVzX0ltYWdlTG9hZEZyb21GaWxlKEBTY3JpcHREaXIgJmFtcDsgJnF1b3Q7JiMwOTI7RnJhbWUucG5nJnF1b3Q7KTxiciAvPgomIzAzNjtoR3JhcGhpYyA9IF9HRElQbHVzX0ltYWdlR2V0R3JhcGhpY3NDb250ZXh0KCYjMDM2O0FjaHRlcmdyb25kbG9hZCk8YnIgLz4KX0dESVBsdXNfR3JhcGhpY3NEcmF3SW1hZ2VSZWN0KCYjMDM2O2hHcmFwaGljLCAmIzAzNjtmcmFtZSwgMCwgMCwgMTk4LCAyMTApPGJyIC8+Cl9TZXRCaXRtYXAoJiMwMzY7R1VJLCAmIzAzNjtBY2h0ZXJncm9uZGxvYWQsIDI1NSwgMTk4LCAyMTApPGJyIC8+Cl9HRElQbHVzX0dyYXBoaWNzRGlzcG9zZSgmIzAzNjtoR3JhcGhpYyk8YnIgLz4KX0dESVBsdXNfSW1hZ2VEaXNwb3NlKCYjMDM2O2ZyYW1lKTxiciAvPgpfR0RJUGx1c19JbWFnZURpc3Bvc2UoJiMwMzY7QWNodGVyZ3JvbmRsb2FkKTxiciAvPgo8YnIgLz4KR1VJUmVnaXN0ZXJNc2coMHgwMDg0LCAmcXVvdDtfRHJhZ1dpbmRvdyZxdW90Oyk8YnIgLz4KJiMwMzY7ZGxsID0gRGxsT3BlbigmcXVvdDt1c2VyMzIuZGxsJnF1b3Q7KTxiciAvPgpHVUlTZXRTdGF0ZShAU1dfU0hPVywgJiMwMzY7R1VJKTxiciAvPgo8YnIgLz4KV2hpbGUgMTxiciAvPgomIzAzNjttc2cgPSBHVUlHZXRNc2coKTxiciAvPgpTZWxlY3Q8YnIgLz4KICBDYXNlICYjMDM2O21zZyA9ICYjMDM2O0dVSV9FVkVOVF9EUk9QUEVEPGJyIC8+CiAgIENvbnNvbGVXcml0ZShAR1VJX0RyYWdGaWxlICZhbXA7IEBDUkxGKTxiciAvPgpFbmRTZWxlY3Q8YnIgLz4KU2xlZXAoMjApPGJyIC8+CldFbmQ8YnIgLz4KPGJyIC8+CkZ1bmMgX0RyYWd3aW5kb3coJiMwMzY7aFduZCwgJiMwMzY7aU1zZywgJiMwMzY7aXdQYXJhbSwgJiMwMzY7aWxQYXJhbSk8YnIgLz4KSWYgJiMwMzY7aFduZCA9ICYjMDM2O0dVSSBUaGVuPGJyIC8+CiAgJiMwMzY7cG9zID0gTW91c2VHZXRQb3MoKTxiciAvPgogIElmICYjMDM2O3Bvc1swXSAmZ3Q7IDE2MiBBbmQgJiMwMzY7cG9zWzBdICZsdDsgMTgyIEFuZCAmIzAzNjtwb3NbMV0gJmd0OyA3IEFuZCAmIzAzNjtwb3NbMV0gJmx0OyAyNyBUaGVuPGJyIC8+CiAgIElmIF9Jc1ByZXNzZWQoJnF1b3Q7MDEmcXVvdDssICYjMDM2O2RsbCkgVGhlbjxiciAvPgoJRGxsQ2xvc2UoJiMwMzY7ZGxsKTxiciAvPgoJX0dESVBsdXNfU2h1dGRvd24oKTxiciAvPgoJRXhpdDxiciAvPgogICBFbmRJZjxiciAvPgogICBJZiAgJiMwMzY7ZWVubWFhbGV4aXQgVGhlbjxiciAvPgoJJiMwMzY7QWNodGVyZ3JvbmRsb2FkID0gX0dESVBsdXNfSW1hZ2VMb2FkRnJvbUZpbGUoQFNjcmlwdERpciAmYW1wOyAmcXVvdDsmIzA5MjtBY2h0ZXJncm9uZC5wbmcmcXVvdDspPGJyIC8+CgkmIzAzNjtmcmFtZSA9IF9HRElQbHVzX0ltYWdlTG9hZEZyb21GaWxlKEBTY3JpcHREaXIgJmFtcDsgJnF1b3Q7JiMwOTI7RnJhbWUgZXhpdC5wbmcmcXVvdDspPGJyIC8+CgkmIzAzNjtoR3JhcGhpYyA9IF9HRElQbHVzX0ltYWdlR2V0R3JhcGhpY3NDb250ZXh0KCYjMDM2O0FjaHRlcmdyb25kbG9hZCk8YnIgLz4KCV9HRElQbHVzX0dyYXBoaWNzRHJhd0ltYWdlUmVjdCgmIzAzNjtoR3JhcGhpYywgJiMwMzY7ZnJhbWUsIDAsIDAsIDE5OCwgMjEwKTxiciAvPgoJX1NldEJpdG1hcCgmIzAzNjtHVUksICYjMDM2O0FjaHRlcmdyb25kbG9hZCwgMjU1LCAxOTgsIDIxMCk8YnIgLz4KCV9HRElQbHVzX0dyYXBoaWNzRGlzcG9zZSgmIzAzNjtoR3JhcGhpYyk8YnIgLz4KCV9HRElQbHVzX0ltYWdlRGlzcG9zZSgmIzAzNjtmcmFtZSk8YnIgLz4KCV9HRElQbHVzX0ltYWdlRGlzcG9zZSgmIzAzNjtBY2h0ZXJncm9uZGxvYWQpPGJyIC8+CgkmIzAzNjtlZW5tYWFsZXhpdCA9IEZhbHNlPGJyIC8+CiAgIEVuZElmPGJyIC8+CiAgRWxzZTxiciAvPgogICBJZiAmIzAzNjtlZW5tYWFsZXhpdCA9IEZhbHNlIFRoZW48YnIgLz4KCSYjMDM2O0FjaHRlcmdyb25kbG9hZCA9IF9HRElQbHVzX0ltYWdlTG9hZEZyb21GaWxlKEBTY3JpcHREaXIgJmFtcDsgJnF1b3Q7JiMwOTI7QWNodGVyZ3JvbmQucG5nJnF1b3Q7KTxiciAvPgoJJiMwMzY7ZnJhbWUgPSBfR0RJUGx1c19JbWFnZUxvYWRGcm9tRmlsZShAU2NyaXB0RGlyICZhbXA7ICZxdW90OyYjMDkyO0ZyYW1lLnBuZyZxdW90Oyk8YnIgLz4KCSYjMDM2O2hHcmFwaGljID0gX0dESVBsdXNfSW1hZ2VHZXRHcmFwaGljc0NvbnRleHQoJiMwMzY7QWNodGVyZ3JvbmRsb2FkKTxiciAvPgoJX0dESVBsdXNfR3JhcGhpY3NEcmF3SW1hZ2VSZWN0KCYjMDM2O2hHcmFwaGljLCAmIzAzNjtmcmFtZSwgMCwgMCwgMTk4LCAyMTApPGJyIC8+CglfU2V0Qml0bWFwKCYjMDM2O0dVSSwgJiMwMzY7QWNodGVyZ3JvbmRsb2FkLCAyNTUsIDE5OCwgMjEwKTxiciAvPgoJX0dESVBsdXNfR3JhcGhpY3NEaXNwb3NlKCYjMDM2O2hHcmFwaGljKTxiciAvPgoJX0dESVBsdXNfSW1hZ2VEaXNwb3NlKCYjMDM2O2ZyYW1lKTxiciAvPgoJX0dESVBsdXNfSW1hZ2VEaXNwb3NlKCYjMDM2O0FjaHRlcmdyb25kbG9hZCk8YnIgLz4KCSYjMDM2O2Vlbm1hYWxleGl0ID0gVHJ1ZTxiciAvPgogICBFbmRJZjxiciAvPgogIEVuZElmPGJyIC8+CiAgUmV0dXJuICYjMDM2O0hUQ0FQVElPTjxiciAvPgpFbmRJZjxiciAvPgpFbmRGdW5jPGJyIC8+CjxiciAvPgpGdW5jIF9TZXRCaXRtYXAoJiMwMzY7aEdVSSwgJiMwMzY7aEltYWdlLCAmIzAzNjtpT3BhY2l0eSwgJiMwMzY7bl93aWR0aCwgJiMwMzY7bl9oZWlnaHQpPGJyIC8+CkxvY2FsICYjMDM2O2hTY3JEQywgJiMwMzY7aE1lbURDLCAmIzAzNjtoQml0bWFwLCAmIzAzNjtoT2xkLCAmIzAzNjtwU2l6ZSwgJiMwMzY7dFNpemUsICYjMDM2O3BTb3VyY2UsICYjMDM2O3RTb3VyY2UsICYjMDM2O3BCbGVuZCwgJiMwMzY7dEJsZW5kPGJyIC8+CiYjMDM2O2hTY3JEQyA9IF9XaW5BUElfR2V0REMoMCk8YnIgLz4KJiMwMzY7aE1lbURDID0gX1dpbkFQSV9DcmVhdGVDb21wYXRpYmxlREMoJiMwMzY7aFNjckRDKTxiciAvPgomIzAzNjtoQml0bWFwID0gX0dESVBsdXNfQml0bWFwQ3JlYXRlSEJJVE1BUEZyb21CaXRtYXAoJiMwMzY7aEltYWdlKTxiciAvPgomIzAzNjtoT2xkID0gX1dpbkFQSV9TZWxlY3RPYmplY3QoJiMwMzY7aE1lbURDLCAmIzAzNjtoQml0bWFwKTxiciAvPgomIzAzNjt0U2l6ZSA9IERsbFN0cnVjdENyZWF0ZSgmIzAzNjt0YWdTSVpFKTxiciAvPgomIzAzNjtwU2l6ZSA9IERsbFN0cnVjdEdldFB0cigmIzAzNjt0U2l6ZSk8YnIgLz4KRGxsU3RydWN0U2V0RGF0YSgmIzAzNjt0U2l6ZSwgJnF1b3Q7WCZxdW90OywgJiMwMzY7bl93aWR0aCk8YnIgLz4KRGxsU3RydWN0U2V0RGF0YSgmIzAzNjt0U2l6ZSwgJnF1b3Q7WSZxdW90OywgJiMwMzY7bl9oZWlnaHQpPGJyIC8+CiYjMDM2O3RTb3VyY2UgPSBEbGxTdHJ1Y3RDcmVhdGUoJiMwMzY7dGFnUE9JTlQpPGJyIC8+CiYjMDM2O3BTb3VyY2UgPSBEbGxTdHJ1Y3RHZXRQdHIoJiMwMzY7dFNvdXJjZSk8YnIgLz4KJiMwMzY7dEJsZW5kID0gRGxsU3RydWN0Q3JlYXRlKCYjMDM2O3RhZ0JMRU5ERlVOQ1RJT04pPGJyIC8+CiYjMDM2O3BCbGVuZCA9IERsbFN0cnVjdEdldFB0cigmIzAzNjt0QmxlbmQpPGJyIC8+CkRsbFN0cnVjdFNldERhdGEoJiMwMzY7dEJsZW5kLCAmcXVvdDtBbHBoYSZxdW90OywgJiMwMzY7aU9wYWNpdHkpPGJyIC8+CkRsbFN0cnVjdFNldERhdGEoJiMwMzY7dEJsZW5kLCAmcXVvdDtGb3JtYXQmcXVvdDssIDEpPGJyIC8+Cl9XaW5BUElfVXBkYXRlTGF5ZXJlZFdpbmRvdygmIzAzNjtoR1VJLCAmIzAzNjtoU2NyREMsIDAsICYjMDM2O3BTaXplLCAmIzAzNjtoTWVtREMsICYjMDM2O3BTb3VyY2UsIDAsICYjMDM2O3BCbGVuZCwgJiMwMzY7VUxXX0FMUEhBKTxiciAvPgpfV2luQVBJX1JlbGVhc2VEQygwLCAmIzAzNjtoU2NyREMpPGJyIC8+Cl9XaW5BUElfU2VsZWN0T2JqZWN0KCYjMDM2O2hNZW1EQywgJiMwMzY7aE9sZCk8YnIgLz4KX1dpbkFQSV9EZWxldGVPYmplY3QoJiMwMzY7aEJpdG1hcCk8YnIgLz4KX1dpbkFQSV9EZWxldGVEQygmIzAzNjtoTWVtREMpPGJyIC8+CkVuZEZ1bmMgICA7PT0mZ3Q7X1NldEJpdG1hcDxiciAvPgo8YnIgLz4KRnVuYyBfSW1hZ2VSZXNpemUoJiMwMzY7c0luSW1hZ2UsICYjMDM2O3NPdXRJbWFnZSwgJiMwMzY7aVcsICYjMDM2O2lIKTxiciAvPgpMb2NhbCAmIzAzNjtoV25kLCAmIzAzNjtoREMsICYjMDM2O2hCTVAsICYjMDM2O2hJbWFnZTEsICYjMDM2O2hJbWFnZTIsICYjMDM2O2hHcmFwaGljLCAmIzAzNjtDTFNJRDxiciAvPgomIzAzNjtoV25kID0gX1dpbkFQSV9HZXREZXNrdG9wV2luZG93KCk8YnIgLz4KJiMwMzY7aERDID0gX1dpbkFQSV9HZXREQygmIzAzNjtoV25kKTxiciAvPgomIzAzNjtoQk1QID0gX1dpbkFQSV9DcmVhdGVDb21wYXRpYmxlQml0bWFwKCYjMDM2O2hEQywgJiMwMzY7aVcsICYjMDM2O2lIKTxiciAvPgpfV2luQVBJX1JlbGVhc2VEQygmIzAzNjtoV25kLCAmIzAzNjtoREMpPGJyIC8+CiYjMDM2O2hJbWFnZTEgPSBfR0RJUGx1c19CaXRtYXBDcmVhdGVGcm9tSEJJVE1BUCgmIzAzNjtoQk1QKTxiciAvPgomIzAzNjtoSW1hZ2UyID0gX0dESVBsdXNfSW1hZ2VMb2FkRnJvbUZpbGUoJiMwMzY7c0luSW1hZ2UpPGJyIC8+CiYjMDM2O2hHcmFwaGljID0gX0dESVBsdXNfSW1hZ2VHZXRHcmFwaGljc0NvbnRleHQoJiMwMzY7aEltYWdlMSk8YnIgLz4KX0dESVBsdXNfR3JhcGhpY3NEcmF3SW1hZ2VSZWN0KCYjMDM2O2hHcmFwaGljLCAmIzAzNjtoSW1hZ2UyLCAwLCAwLCAmIzAzNjtpVywgJiMwMzY7aUgpPGJyIC8+CiYjMDM2O0NMU0lEID0gX0dESVBsdXNfRW5jb2RlcnNHZXRDTFNJRCgmcXVvdDtqcGcmcXVvdDspPGJyIC8+Cl9HRElQbHVzX0ltYWdlU2F2ZVRvRmlsZUV4KCYjMDM2O2hJbWFnZTEsICYjMDM2O3NPdXRJbWFnZSwgJiMwMzY7Q0xTSUQpPGJyIC8+Cl9HRElQbHVzX0ltYWdlRGlzcG9zZSgmIzAzNjtoSW1hZ2UxKTxiciAvPgpfR0RJUGx1c19JbWFnZURpc3Bvc2UoJiMwMzY7aEltYWdlMik8YnIgLz4KX0dESVBsdXNfR3JhcGhpY3NEaXNwb3NlKCYjMDM2O2hHcmFwaGljKTxiciAvPgpfV2luQVBJX0RlbGV0ZU9iamVjdCgmIzAzNjtoQk1QKTxiciAvPgpFbmRGdW5j[/__CODE_PROTECTED]http://www.nendsoftware.nl/ab.zip Edited February 29, 2012 by nend Link to comment Share on other sites More sharing options...
UEZ Posted February 28, 2012 Share Posted February 28, 2012 Try this expandcollapse popup#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Global Const $SC_DRAGMOVE = 0xF012 Global $GUI, $eenmaalexit = True ;~ Opt("MouseCoordMode", 2) _GDIPlus_Startup() $GUI = GUICreate("", 198, 210, 120, 120, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW, $WS_EX_ACCEPTFILES, $WS_EX_TOPMOST)) $iLabel1 = GUICtrlCreateLabel("", 0, 0, 120, 120) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetState(-1, $GUI_DROPACCEPTED) $iLabel2 = GUICtrlCreateLabel("", 162, 7, 20, 20) $Achtergrondload = _GDIPlus_ImageLoadFromFile(@ScriptDir & "Achtergrond.png") $frame = _GDIPlus_ImageLoadFromFile(@ScriptDir & "Frame.png") $hGraphic = _GDIPlus_ImageGetGraphicsContext($Achtergrondload) _GDIPlus_GraphicsDrawImageRect($hGraphic, $frame, 0, 0, 198, 210) _SetBitmap($GUI, $Achtergrondload, 255, 198, 210) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_ImageDispose($frame) _GDIPlus_ImageDispose($Achtergrondload) GUISetState(@SW_SHOW, $GUI) GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN") GUISetOnEvent($GUI_EVENT_DROPPED, "_Dragwindow") GUISetOnEvent($GUI_EVENT_CLOSE, "_Dragwindow") While Sleep(30) $aMPos = GUIGetCursorInfo($GUI) If $aMPos[2] And $aMPos[4] = $iLabel2 Then _Exit() WEnd Func _Exit() _GDIPlus_Shutdown() Exit EndFunc Func _Dragwindow() Switch @GUI_CtrlId Case $GUI_EVENT_DROPPED ConsoleWrite(@GUI_DragFile & " was dropped" & @LF) Case $GUI_EVENT_CLOSE _Exit() EndSwitch EndFunc Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam) _SendMessage($GUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0) EndFunc ;==>_WM_LBUTTONDOWN Func _SetBitmap($hGUI, $hImage, $iOpacity, $n_width, $n_height) Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend $hScrDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = DllStructCreate($tagSIZE) $pSize = DllStructGetPtr($tSize) DllStructSetData($tSize, "X", $n_width) DllStructSetData($tSize, "Y", $n_height) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, "Alpha", $iOpacity) DllStructSetData($tBlend, "Format", 1) _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) EndFunc ;==>_SetBitmap Func _ImageResize($sInImage, $sOutImage, $iW, $iH) Local $hWnd, $hDC, $hBMP, $hImage1, $hImage2, $hGraphic, $CLSID $hWnd = _WinAPI_GetDesktopWindow() $hDC = _WinAPI_GetDC($hWnd) $hBMP = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) _WinAPI_ReleaseDC($hWnd, $hDC) $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBMP) $hImage2 = _GDIPlus_ImageLoadFromFile($sInImage) $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1) _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $iW, $iH) $CLSID = _GDIPlus_EncodersGetCLSID("jpg") _GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID) _GDIPlus_ImageDispose($hImage1) _GDIPlus_ImageDispose($hImage2) _GDIPlus_GraphicsDispose($hGraphic) _WinAPI_DeleteObject($hBMP) EndFunc Func _ReduceMemory() Local $hProcess = -1 Local $aCall = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess") If Not @error Then $hProcess = $aCall[0] EndIf $aCall = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'hwnd', $hProcess) If @error Then $aCall = DllCall("kernel32.dll", 'int', 'K32EmptyWorkingSet', 'hwnd', $hProcess) EndIf EndFunc ;==>ReduceMemory I didn't catch what you want to do when a file has been dragged to the window. I leave that part off... Br, UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
nend Posted February 29, 2012 Author Share Posted February 29, 2012 Thanks UEZ, it works great. Now I can proceed with my code. Link to comment Share on other sites More sharing options...
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