[EX] Bouton couleur, texte couleur, alignement texte

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 722
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

[EX] Bouton couleur, texte couleur, alignement texte

#1

Message par walkson » dim. 15 sept. 2019 21:01

Bonjour,
Étant déçu des boutons de Windows où on ne peut pas mettre de couleurs, ou placer un texte comme on veut, je me suis fait un UDF qui répond à mes attentes et que je vous propose.
Ce bouton est totalement virtuel, dessiné en GdiPlus (pas d’image importée ou autres). Le bouton a 4 positions, en pause, au survole de la souris, au clic et enfin désactivé. Je vous ai mis un vilain pas beau en bas du GUI pour voir la différence.
ImageA.jpg
Cliquez sur l'image pour agrandir
L'entête de l'UDF
; FUNCTIONS ====================================================================================================================
; Name ..........: _ADD_Button
; Name ..........: _ButtonState
; Name ..........: _ButtonDelete
; #FUNCTION# ====================================================================================================================
; Name ..........: _ADD_Button
; Description ...: Crée un pseudo bouton avec couleur, alignement et couleur texte. En surbrillance sous la souris et s'assombrit au clic
; Syntax ........: _ADD_Button($Left, $Top, $width, $height, $Text[, $AlignTextH = 1[, $AlignTextV = 1[, $ColorText = 0xFF000000[,
;                  $hFont = "Arial"[, $fSize = 9[, $iStyle = 0[, $MargeGauche = 0[, $MargeHaute = 0[, $Masq = 0]]]]]]]]])
; Parameters ....: $Left                - La coordonnée X du coin supérieur gauche du contrôle.
;                  $Top                 - La coordonnée Y du coin supérieur gauche du contrôle.
;                  $width               - Largeur du contrôle
;                  $height              - Hauteur du contrôle
;                  $Text                - texte du contrôle.
;                  $AlignTextH          - [optional] Alignement horizontale du texte. 0=gauche 1=milieu 2= droite. Default is 1.
;                  $AlignTextV          - [optional] Alignement verticale du texte. Alignement = 0 haut, 1 milieu, 2 bas. Default is 1.
;                  $ColorText           - [optional] Couleur du texte ARGB. Default is 0xFF000000.
;                  $hFont               - [optional] Nom de la police. Default is "Arial".
;                  $fSize               - [optional] Taille de la police. Default is 9.
;                  $iStyle              - [optional] Style de la police. 0 = normal, 1 = gras, 2 = Italique, etc... Default is 0. (voir _GDIPlus_FontCreate().)
;                  $MargeGauche         - [optional] Marge sur la gauche. Default is 0.
;                  $MargeHaute          - [optional] Marge haute. Default is 0.
;                  $Masq                - [optional] Masque de couleur ARGB en superposition, eg: 0x20FFFF00. Default is 0 (pas de masque).
; Return values .: L'Id du control
; Author ........: Walkson
; Modified ......:
; Remarks .......:
; ===============================================================================================================================
Le texte peut être à droite, au centre ou à gauche, en haut, au milieu ou en bas en jouant sur $AlignTextH ou $AlignTextV. On peut affiner la position en jouant sur les marges gauche et haute avec des données positives ou négatives en utilisant $MargeGauche et $MargeHaute. Le texte peut être coloré, choix de la police, taille etc… Une remarque, le texte ne peut pas être modifié. Si vous voulez le modifier, il faut créer un nouveau bouton (voir exemple).

Le bouton peut être coloré par un masque $Masq en jouant sur la transparence afin de ne pas cacher les effets de relief. Toutes les couleurs (bouton ou texte) sont en ARGB (0xAARRGGBB), c’est-à-dire à 4 canaux, alpha (transparence), rouge, vert, bleu et en hexadécimal (ex : 0xFFA9B500 vert). Pour ceux qui ne connaissent pas, chaque canal s’écrit en deux nombres ou lettres, du plus clair au plus foncé, de F à A puis de 9 à 0. Blanc = 0xFFFFFFFF et noir = 0xFF000000 avec toutes les combinaisons possible. Pour le canal alpha, 0xFF rend opaque et 0x00 rend totalement transparent. A titre d’exemple, le bouton jaune de l’exemple a comme valeur 0x20FFFF00 et le bouton grisé 0x609A9A9A. On a une forte transparence proche de 0x00.

Pour désactiver le bouton, utilisez _ButtonState() et pour le détruire _ButtonDelete() (efface les handles du array et évite des conflits). Autrement, le bouton (qui est en fait un label) réagit à GUICtrlSetState() ou GUICtrlRead () comme n’importe quel control, seul le texte ne peut être changé.

Dans le Zip, l’UDF et un exemple.
Réalisé avec Autoit v3.3.14.5 Sous Win 7 (32)

Merci de vos observations ou remarques
Fichiers joints
_button.zip
(5.37 Kio) Téléchargé 34 fois
_button.zip
(5.37 Kio) Téléchargé 34 fois
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Répondre