Jump to content
Sign in to follow this  
myspacee

Mouse over buttons

Recommended Posts

myspacee

hello to all,

find usefull script that control over mouse over buttons.

Set colour working, but want that the button return to 'windows system' colour when mouse left it, is possible ?

see _ControlHover() post here

download

#include <GUIConstants.au3>
#include <_ControlHover.au3>



$Btn_Color = 0x7A9DD8
$Hover_Color = 0xFF0000;0x7AC5D8


$mygui = GUICreate("My GUI - Button Release & colors") 
$Button_1 = GUICtrlCreateButton("Button1", 0, 0, 100, 100, 0)
$Button_2 = GUICtrlCreateButton("Button2", 100, 0, 100, 100, 0)
$Button_3 = GUICtrlCreateButton("Button3", 200, 0, 100, 100, 0)
$Button_4 = GUICtrlCreateButton("Button4", 0, 100, 100, 100, 0)
$Button_5 = GUICtrlCreateButton("Button_OK", 100, 100, 100, 100, 0)
$Button_6 = GUICtrlCreateButton("Button6", 200, 100, 100, 100, 0)
$Button_7 = GUICtrlCreateButton("Button7", 0, 200, 100, 100, 0)
$Button_8 = GUICtrlCreateButton("Button8", 100, 200, 100, 100, 0)
$Button_9 = GUICtrlCreateButton("Button9", 200, 200, 100, 100, 0)
        
GUISetState ()    

_ControlHover(2, "", $Button_1) 
_ControlHover(2, "", $Button_2)
_ControlHover(2, "", $Button_3) 
_ControlHover(2, "", $Button_4)
_ControlHover(2, "", $Button_5) 
_ControlHover(2, "", $Button_6)
_ControlHover(2, "", $Button_7) 
_ControlHover(2, "", $Button_8)
_ControlHover(2, "", $Button_9) 


WinSetTitle($mygui, "", "My GUI - Setting Data & Colors ") 




While 1
   $msg1 = GUIGetMsg()
   
    If $msg1 = $GUI_EVENT_CLOSE Then 
        ExitLoop
    EndIf
   
   
   
   $Over = _ControlHover(0, $mygui); or _ControlHover() - or _ControlHover(0)
    If $Over = 1 Then
        $tempID = @extended
        GUICtrlSetBkColor( $tempID, $Hover_Color); color does not work on buttons - an Autoit Limit
        
    Else
        $tempID = @extended 
        GUICtrlSetBkColor( $tempID, $Btn_Color )
        
    EndIf
   
   
    $Click = _ControlHover(1, $mygui); or _ControlHover(1)
    If $Click = 1 And @extended = $Button_1 Then MsgBox(0, 'Testing', 'Button 1 was pressed', 2) 
    If $Click = 1 And @extended = $Button_2 Then MsgBox(0, 'Testing', 'Button 2 was pressed', 2) 
    If $Click = 1 And @extended = $Button_3 Then MsgBox(0, 'Testing', 'Button 3 was pressed', 2) 
    If $Click = 1 And @extended = $Button_4 Then MsgBox(0, 'Testing', 'Button 4 was pressed', 2) 
    If $Click = 1 And @extended = $Button_5 Then MsgBox(0, 'Testing', 'Button 5 was pressed', 2) 
    If $Click = 1 And @extended = $Button_6 Then MsgBox(0, 'Testing', 'Button 6 was pressed', 2) 
    If $Click = 1 And @extended = $Button_7 Then MsgBox(0, 'Testing', 'Button 7 was pressed', 2) 
    If $Click = 1 And @extended = $Button_8 Then MsgBox(0, 'Testing', 'Button 8 was pressed', 2) 
    If $Click = 1 And @extended = $Button_9 Then MsgBox(0, 'Testing', 'Button 9 was pressed', 2) 

Wend

thank you for help,

m.

Share this post


Link to post
Share on other sites
myspacee

thank you for reply but i post same link...

can anyone help me ?

thank you!

m.

Share this post


Link to post
Share on other sites
Valuater

That seems to be a problem and this too

... it just changes the text color, but the button color suffers too

#include <GUIConstants.au3>
#include <_ControlHover.au3>

 

$Btn_Color = 0x7A9DD8; 0x7A9DD8
$Hover_Color = 0xFF0000;0x7AC5D8


$mygui = GUICreate("My GUI - Button Release & colors")
$Button_1 = GUICtrlCreateButton("Button1", 0, 0, 100, 100, 0)
$Button_2 = GUICtrlCreateButton("Button2", 100, 0, 100, 100, 0)
$Button_3 = GUICtrlCreateButton("Button3", 200, 0, 100, 100, 0)
$Button_4 = GUICtrlCreateButton("Button4", 0, 100, 100, 100, 0)
$Button_5 = GUICtrlCreateButton("Button_OK", 100, 100, 100, 100, 0)
$Button_6 = GUICtrlCreateButton("Button6", 200, 100, 100, 100, 0)
$Button_7 = GUICtrlCreateButton("Button7", 0, 200, 100, 100, 0)
$Button_8 = GUICtrlCreateButton("Button8", 100, 200, 100, 100, 0)
$Button_9 = GUICtrlCreateButton("Button9", 200, 200, 100, 100, 0)

GUISetState()

_ControlHover(2, "", $Button_1)
_ControlHover(2, "", $Button_2)
_ControlHover(2, "", $Button_3)
_ControlHover(2, "", $Button_4)
_ControlHover(2, "", $Button_5)
_ControlHover(2, "", $Button_6)
_ControlHover(2, "", $Button_7)
_ControlHover(2, "", $Button_8)
_ControlHover(2, "", $Button_9)


While 1
 $msg1 = GUIGetMsg()

 If $msg1 = $GUI_EVENT_CLOSE Then
  ExitLoop
 EndIf

 $Over = _ControlHover(0, $mygui); or _ControlHover() - or _ControlHover(0)
 If $Over = 1 Then
  $tempID = @extended
  GUICtrlSetColor($tempID, $Hover_Color); color does not work on buttons - an Autoit Limit
  GUICtrlSetFont($tempID, 12, 500)
 Else
  $tempID = @extended
  GUICtrlSetColor($tempID, ""); $Btn_Color ) ; "" = BLACK
  GUICtrlSetFont($tempID, 9, 100)

 EndIf

 $Click = _ControlHover(1, $mygui); or _ControlHover(1)
 If $Click = 1 And @extended = $Button_1 Then MsgBox(0, 'Testing', 'Button 1 was pressed', 2)
 If $Click = 1 And @extended = $Button_2 Then MsgBox(0, 'Testing', 'Button 2 was pressed', 2)
 If $Click = 1 And @extended = $Button_3 Then MsgBox(0, 'Testing', 'Button 3 was pressed', 2)
 If $Click = 1 And @extended = $Button_4 Then MsgBox(0, 'Testing', 'Button 4 was pressed', 2)
 If $Click = 1 And @extended = $Button_5 Then MsgBox(0, 'Testing', 'Button 5 was pressed', 2)
 If $Click = 1 And @extended = $Button_6 Then MsgBox(0, 'Testing', 'Button 6 was pressed', 2)
 If $Click = 1 And @extended = $Button_7 Then MsgBox(0, 'Testing', 'Button 7 was pressed', 2)
 If $Click = 1 And @extended = $Button_8 Then MsgBox(0, 'Testing', 'Button 8 was pressed', 2)
 If $Click = 1 And @extended = $Button_9 Then MsgBox(0, 'Testing', 'Button 9 was pressed', 2)
WEnd

Possible suggestions are...

1 to color the button at first, then just return it to that color after hoover is over

2 use ButtonHover() with picure buttons... or even EzSkin with skins and pic buttons

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites
taz742

I think this one is working as you want !!!

Tip is here:

Func _GUICtrlButton_SetBackgroundToSystemColor($CtrlhWnd)
    GUICtrlSetStyle($CtrlhWnd,BitXOR(_GUICtrlGetStyle($CtrlhWnd),0x0000000B));remove colored style
EndFunc   ;==>_GUICtrlButton_SetBackgroundToSystemColor

Func _GUICtrlGetStyle($CtrlhWnd)
    If Not IsHWnd($CtrlhWnd) Then $CtrlhWnd = GUICtrlGetHandle($CtrlhWnd)
    Local $a_Style = DllCall("user32.dll", "long", "GetWindowLong", "hwnd", $CtrlhWnd, "int", -16);get existing Style
    Return $a_Style[0]
EndFunc   ;==>_GUICtrlGetStyle
Edited by taz742

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.