nend Posted February 28, 2012 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
UEZ Posted February 28, 2012 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!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ
nend Posted February 29, 2012 Author Posted February 29, 2012 Thanks UEZ, it works great. Now I can proceed with my code.
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