nadigo Posted November 29, 2010 Share Posted November 29, 2010 Hi, I am trying to crate an empty GUI so that when the mouse is hovered on top of it for more than 3 sec a new menu will slide from it. do i need to use GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") can I use it with an empty GUI ? do I need a control ? thanks, Nadav Link to comment Share on other sites More sharing options...
PsaltyDS Posted November 29, 2010 Share Posted November 29, 2010 There are geekier ways (register and handle messages), but a simple loop that checks if your GUI is active and uses MouseGetPos() to see if the mouse is over the GUI would be much easier: expandcollapse popup#include <GuiConstantsEx.au3> Global $hGUI, $idButton, $f_Visible, $iTimer $hGUI = GUICreate("", 400, 300) $idButton = GUICtrlCreateButton("Click Me!", 150, 135, 100, 30) GUISetState() _HideStuff() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $idButton MsgBox(64, "Button", "You clicked the button!", 3) EndSwitch If $f_Visible Then If Not _CheckMouseOver() Then _HideStuff() Else If _CheckMouseOver() Then If $iTimer Then If TimerDiff($iTimer) >= 3000 Then _ShowStuff() EndIf Else $iTimer = TimerInit() EndIf EndIf EndIf WEnd Func _CheckMouseOver() Local $RET = False If WinActive($hGUI) Then Local $aMousePos = MouseGetPos() Local $aGuiPos = WinGetPos($hGUI) If ($aMousePos[0] > $aGuiPos[0]) And ($aMousePos[0] < ($aGuiPos[0] + $aGuiPos[2])) And _ ($aMousePos[1] > $aGuiPos[1]) And ($aMousePos[1] < ($aGuiPos[1] + $aGuiPos[3])) Then $RET = True EndIf EndIf Return $RET EndFunc ;==>_CheckMouseOver Func _ShowStuff() $f_Visible = True $iTimer = 0 GUICtrlSetState($idButton, $GUI_SHOW) GUICtrlSetState($idButton, $GUI_ENABLE) EndFunc ;==>_ShowStuff Func _HideStuff() $f_Visible = False $iTimer = 0 GUICtrlSetState($idButton, $GUI_DISABLE) GUICtrlSetState($idButton, $GUI_HIDE) EndFunc ;==>_HideStuff Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
FastJMAN1 Posted April 1, 2011 Share Posted April 1, 2011 That was a very good GUI hover effect. I was surprised to see it done so simple. Very good job 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