Что нового

Перемещение layered окна

Fever

Скриптер
Сообщения
308
Репутация
112
Всем здрасте :bye:
есть layered окно и нужно сделать возможность ему двигаться по зажатию мышки, для контролов есть $GUI_WS_EX_PARENTDRAG, а тут как быть? :-\

Код:
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPIEx.au3>

Global $pName = "", _
$iBack = "background.png"


_GDIPlus_Startup()
$hPng = _GDIPlus_ImageLoadFromFile($iBack)

$hForm = GUICreate($pName, 300, 100, -1, -1, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
_WinAPI_UpdateLayeredWindowEx($hForm, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hPng))
_GDIPlus_ImageDispose($hPng)

GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPIEx.au3>
#include <Memory.au3>
#include <misc.au3>

Global $pName = "", _
$iBack = "background.png"

_GDIPlus_Startup()
$hPng = _GDIPlus_ImageLoadFromFile($iBack)

$hForm = GUICreate($pName, 300, 100, -1, -1, $WS_POPUPWINDOW, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
_WinAPI_UpdateLayeredWindowEx($hForm, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hPng))
_GDIPlus_ImageDispose($hPng)

GUISetState()

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_PRIMARYDOWN
			$cp = mousegetpos()
			$wp = wingetpos($hForm)
			while _IsPressed(1)
				$dp = mousegetpos()
				winmove($hForm,"",$wp[0] + $dp[0] - $cp[0],$wp[1] + $dp[1] - $cp[1])
			WEnd
		Case - 3
			Exit
	EndSwitch
WEnd
 
Верх