Bonjour,
comme je trouve les boutons très peu jolis, j'utilise des images et des labels pour les remplacer. Ensuite, avec un "Case $nomdumodule", je détecte le clic et lance les actions relatives.
Mais voilà, le fait que ça ne soit pas des boutons les rend peu visibles pour un clic.
Ma question est la suivante : comment détecter le survol souris au dessus d'un de ces objets, afin d'indiquer que le clic va entrainer une action en modifiant l'objet en question ?
PS: J'aimerais éviter les bidouilles de détection de la position de la souris par rapport au bouton...
Merci par avance !
[..] Changer l'apparrence d'un label au survol de la souris
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Changer l'apparrence d'un label au survol de la souris
Bonsoir,
GUIGetCursorInfo sera la clé de voute :
GUIGetCursorInfo sera la clé de voute :
Code : Tout sélectionner
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 193, 125)
$Button1 = GUICtrlCreateButton("Button1", 80, 56, 105, 57, 0)
$Button2 = GUICtrlCreateButton("Button2", 379, 124, 105, 57, 0)
$Button3 = GUICtrlCreateButton("Button3", 200, 220, 105, 57, 0)
$Button4 = GUICtrlCreateButton("Sortie", 455, 314, 105, 57, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
AdlibEnable("Detect_ctrl",500)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button4
Exit
EndSwitch
Sleep(100)
WEnd
Func Detect_ctrl()
Local $cursor_info,$id
$cursor_info=GUIGetCursorInfo ()
If @error Then Return
$id=$cursor_info[4]
If Not $id Then
ToolTip("")
Return
EndIf
ToolTip ( GUICtrlRead($id)&" est survolé" , $cursor_info[0] , $cursor_info[1] , "Info" , 1)
EndFunc
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Changer l'apparrence d'un label au survol de la souris
Merci, cette solution marche bien !
Mais à tout hasard, n'en n'existerai pas une autre moins... gourmande qu'une fonction à répéter toutes les 500 ms ?
Merci par avance, sinon je ferai avec celle-ci
Mais à tout hasard, n'en n'existerai pas une autre moins... gourmande qu'une fonction à répéter toutes les 500 ms ?
Merci par avance, sinon je ferai avec celle-ci
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Re: [..] Changer l'apparrence d'un label au survol de la souris
oui y a bien une autre fonction (plutot un UDF spécialement créer pour le survol d'un control)
- Fichiers joints
-
- GuiCtrlSetOnHover.zip
- UDF ControlID
- (7.05 Kio) Téléchargé 526 fois
Re: [..] Changer l'apparrence d'un label au survol de la souris
Oooops je suis navré, aucun fichier ne marche, et j'ai un peu de mal à comprendre le fonctionnement de la chose...
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Changer l'apparrence d'un label au survol de la souris
Elle est chouette cette udf, une grnade leçon sur les callbacks !
Sinon, les fichiers de démos passe bien chez moi ...
Pour le principe d'utilisation, après création d'un contrôle d'id : $ID, on lance un
GUICtrlSetOnHover($id, "Hover_Func", "Leave_Hover_Func")
avec Hover_Func, la fonction à lancer an cas de survol (à écrire soit même, ie je change la police, le texte, la taille ....)
et Leave_Hover_Func, la fonction à lancer lorsqu'on quitte la zone de survol (ie je restore l'état initial)
je suis admiratif ^^
Sinon, les fichiers de démos passe bien chez moi ...
Pour le principe d'utilisation, après création d'un contrôle d'id : $ID, on lance un
GUICtrlSetOnHover($id, "Hover_Func", "Leave_Hover_Func")
avec Hover_Func, la fonction à lancer an cas de survol (à écrire soit même, ie je change la police, le texte, la taille ....)
et Leave_Hover_Func, la fonction à lancer lorsqu'on quitte la zone de survol (ie je restore l'état initial)
je suis admiratif ^^
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.