Что нового

Прозрачное окно если мышь не над ним

Sergey2210

Осваивающий
Сообщения
263
Репутация
31
Версия AutoIt:3.

Здравствуйте,как сделать чтоб окно было полупрозрачным,а при навидении мышы на него становилось нормальным,я что то пытался сделать ,всё работает,но не так как нужно,я знаю что есть вариант и попроще только я его не помню и получилось как всегда через ....

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $aCursorInf = False

$hForm = GUICreate("",500,400)
$aTransRegion = GUICtrlCreateLabel('',0,0,500,400,$WS_CLIPSIBLINGS)
GUISetState() 
 
While 1
	$aCursor = GUIGetCursorInfo()
	Switch $aCursor[4]
		Case $aTransRegion
			If $aCursorInf = False Then
			    WinSetTrans($hForm,'',255)
			    $aCursorInf = True
			EndIf	
		Case Else
            WinSetTrans($hForm,'',100)	
			$aCursorInf = False
	EndSwitch	
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch	
WEnd
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

Global $dT = 10, $Trans = 255, $aCursorInf = True

$hForm = GUICreate("", 500, 400)
guictrlcreatebutton('ok', 100, 100, 100, 100)
GUISetState()

While 1
	$tPoint = _WinAPI_GetMousePos()
	If _WinAPI_GetAncestor(_WinAPI_WindowFromPoint($tPoint), $GA_ROOT) = $hForm Then
		If $dT < 0 Then
			$dT = -$dT
			AdlibRegister('_Fade', 10)
		EndIf
	Else
		If $dT > 0 Then
			$dT = -$dT
			AdlibRegister('_Fade', 10)
		EndIf
	EndIf
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _Fade()
	$Trans += $dT
	If ($Trans < 105) Or ($Trans > 255) Then
		AdlibUnRegister('_Fade')
		Return
	EndIf
	WinSetTrans($hForm, '', $Trans)
EndFunc   ;==>_Fade
 
Верх