#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <ListBoxConstants.au3>
#include <StaticConstants.au3>
#include <Misc.au3>
#include <GuiButton.au3>
#include <WinAPI.au3>
#include <ScreenCapture.au3>
Opt("GUIOnEventMode", 1)
_ScreenCapture_Capture(@ScriptDir & "\TempScrBack.jpg", 100, 100, 1024, 768)
GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")
Global $aPics[11], $put_fotki[11]
Global $b, $schet
Global $gaDropFiles[1], $Okno_Fotka[11]
Local $i
$GUI = GUICreate("", 1024, 768, -1, -1, -1, $WS_EX_ACCEPTFILES)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE_okno_dobavit_novosti")
GUICreate("", 1024, 768, 0, 0, $WS_CHILD, -1, $GUI)
$pic_dobavit_kartinku = GUICtrlCreatePic(@ScriptDir & "\TempScrBack.jpg", 0, 0, 1024, 768)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
GUISwitch($GUI)
GUISetState()
While 1
Sleep(1000) ; Цикл ожидания
WEnd
Func CLOSE_okno_dobavit_novosti()
; GUIDelete($GUI)
Exit
EndFunc ;==>CLOSE_okno_dobavit_novosti
Func peretaskivanie_dobavit_kartinku()
; создание дочернего окна
For $i = 0 To UBound($gaDropFiles) - 1
$put_fotki[$schet] = $gaDropFiles[$i]
$Okno_Fotka[$schet] = GUICreate("", 800, 600, 0, 0, $WS_CHILD, $WS_EX_CONTROLPARENT, $GUI)
; создание картинки на дочернем окне
$aPics[$schet] = GUICtrlCreatePic($put_fotki[$schet], 0, 0, 800, 600)
GUICtrlSetCursor($aPics[$schet], 0)
GUICtrlSetOnEvent($aPics[$schet], "peremeshenie_kartinki")
GUISetState()
; установка автоизменения размера картинки
GUICtrlSetResizing($aPics[$schet], $GUI_DOCKAUTO)
; отображение дочернего окна
WinMove($Okno_Fotka[$schet], -1, 120 * $schet, 120, 120, 120)
; перемещение дочернего окна картинки на самый верх
; относительно других дочерних окон
ChildToTop($aPics[$schet])
$schet = $schet + 1
GUISetState()
Next
;GUISetState(@SW_SHOW, $GUI)
EndFunc ;==>peretaskivanie_dobavit_kartinku
Func peremeshenie_kartinki()
$Vibranna_kartinka = GUIGetCursorInfo($GUI)
;MsgBox(4096,"","gg")
ChildToTop($Vibranna_kartinka[4])
GUICtrlSetState($Vibranna_kartinka[4], $GUI_DISABLE)
MouseDown("left")
While GUIGetCursorInfo($GUI)[2]
WEnd
GUICtrlSetState($Vibranna_kartinka[4], $GUI_ENABLE)
EndFunc ;==>peremeshenie_kartinki
Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
;GUICtrlSetState($otobragenie_kartinki,$GUI_ENABLE)
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
;$schet=$schet+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
peretaskivanie_dobavit_kartinku()
EndFunc ;==>WM_DROPFILES_FUNC
Func ChildToTop($ChildId)
Local $aRet = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", GUICtrlGetHandle($ChildId))
If Not @error Then DllCall("user32.dll", "bool", "BringWindowToTop", "hwnd", $aRet[0])
EndFunc ;==>ChildToTop