Page 1 sur 1
[R] GUICtrlCreateRadio est il dimensionnable ?
Posté : jeu. 10 déc. 2015 00:19
par Yle
Bonsoir,
Lorsque je programme un Local $idRadio1 = GUICtrlCreateRadio("Radio 1", 10, 10, 120, 20), un bouton "radio" s'affiche mais en résolution Full HD (1980x1024), le bouton radio a vraiment une toute petite taille.
Y-a-t'il une astuce pour le redimensionner et si oui comment faire pour l'agrandir ?
Merci d'avance
Re: [..] GUICtrlCreateRadio est il dimensionnable ?
Posté : jeu. 10 déc. 2015 21:46
par jguinch
Qu'entends-tu par "résolution HD" ? Tu voudrais que le texte soit plus gros, ou que ce soit la case à cocher qui soit plus grosse ?
Pour le texte, c'est faisable, mais pour la case à cocher il va falloir passer par autre chose qu'un contrôle de type "radio" car à priori, pas possible de définir sa taille...
Re: [..] GUICtrlCreateRadio est il dimensionnable ?
Posté : sam. 12 déc. 2015 09:50
par Yle
Le texte, pas de souci mais c'est la case à cocher qui est trop petite en 1920x1080 !
Une checkboxe peut s'agrandir mais j'ai besoin de plusieurs boutons "RADIO"
J'ai regardé un peu partout mais j'ai rien vu là dessus...
Re: [..] GUICtrlCreateRadio est il dimensionnable ?
Posté : sam. 12 déc. 2015 17:44
par jguinch
Je pense que la seule solution est de passer par autre chose qu'un bouton radio, genre une image, une icône, ou du texte.
Par exemple, on peut faire un truc simple comme ça :
► Afficher le texte
Code : Tout sélectionner
#Include <GUIConstantsEx.au3>
Local $iCheckboxState = 0
GUICreate("checkbox", 400, 100)
Local $checkbox = GUICtrlCreateLabel( ChrW(0x2610), 10, 10, 30, 35)
GUICtrlSetFont(-1, 25)
GUICtrlCreateLabel("Grosse case à cocher hyper bien faite", 50, 20, 340, 35)
GUICtrlSetFont(-1, 14)
Local $button = GUICtrlCreateButton("Click", 10, 60, 100, 25)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $checkbox
$iCheckboxState = Not $iCheckboxState
GUICtrlSetData($checkbox, ($iCheckboxState ? ChrW(0x2611) : ChrW(0x2610)) )
Case $button
MsgBox(0, "", "La case " & ($iCheckboxState ? "est" : "n'est pas") & " cochée.")
EndSwitch
WEnd
Re: [..] GUICtrlCreateRadio est il dimensionnable ?
Posté : sam. 12 déc. 2015 19:07
par mikell
jguinch tu aurais pu te lâcher
► Afficher le texte
Code : Tout sélectionner
#Include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $iCheckboxState = 0
GUICreate("checkbox", 400, 100)
Local $checkbox = GUICtrlCreateLabel("", 10, 10, 30, 30, -1, $WS_EX_CLIENTEDGE)
GuiCtrlSetFont(-1, 16, 600, 0, "Arial Unicode MS")
GUICtrlSetBkColor(-1, 0)
GUICtrlSetColor(-1, 0xffffff)
GUICtrlCreateLabel("Grosse case à cocher hyper bien faite", 50, 20, 340, 35)
Local $button = GUICtrlCreateButton("Click", 10, 60, 100, 25)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $checkbox
$iCheckboxState = Not $iCheckboxState
GUICtrlSetData($checkbox, ($iCheckboxState ? " " & ChrW(10003) : "") )
Case $button
MsgBox(0, "", "La case " & ($iCheckboxState ? "est" : "n'est pas") & " cochée.")
EndSwitch
WEnd
Maintenant, ce que ça peut donner en surfant avec les résolutions ... ^^
Re: [..] GUICtrlCreateRadio est il dimensionnable ?
Posté : sam. 12 déc. 2015 22:08
par jguinch
Pas mal le $WS_EX_CLIENTEDGE, j'y avais pas pensé

Re: [R] GUICtrlCreateRadio est il dimensionnable ?
Posté : dim. 13 déc. 2015 12:23
par Yle
Excellent, le n'y avais pas pensé
Je vais modifier mon script en conséquence car ce n''est pas mal du tout !
Merci à vous deux
Bon dimanche
Re: [R] GUICtrlCreateRadio est il dimensionnable ?
Posté : dim. 13 déc. 2015 15:17
par mikell
Avant de chambouler ton script, tu devrais tester le bazar sous différentes résolutions puisqu'apparemment c'est ça qui fait souci
Pas sûr que la cohérence visuelle soit conservée, à moins de systématiquement redessiner le controle en fonction de la résolution utilisée

Re: [R] GUICtrlCreateRadio est il dimensionnable ?
Posté : mar. 15 déc. 2015 09:33
par Yle
Mikell bonjour,
Je n'avais pas vu ta remarque.
J'ai donc commencé à modifier mon script et me suis aperçu en testant (toutes les résolutions écran du 1024x768 au 1980x1020) qu'avec des résolutions les "coches" n'apparaissaient plus.
Je vais donc être obligé de re dessiner à chaque fois car la taille de la checkboxe varie en fonction de la définition écran et la coche ne tape plus dedans
Je vais regarder çà cette semaine...
Re: [R] GUICtrlCreateRadio est il dimensionnable ?
Posté : mar. 15 déc. 2015 14:27
par mikell
Dans mon code et avec ma résolution habituelle 1920x1080 j'ai dû rajouter un espace avant la coche pour qu'elle soit bien centrée dans la case
Il va probablement te falloir tout adapter (taille, police etc) en fonction de chaque résolution possible

Re: [R] GUICtrlCreateRadio est il dimensionnable ?
Posté : mar. 15 déc. 2015 19:28
par Yle
Effectivement faut ajouter un espace presque sur toutes les résolutions
En ce qui concerne la taille des polices et des fenêtres, je joue sur la résolution actuelle par rapport à celle de base 800x600
Ce qui donne ceci adapté à cet exemple.
Code : Tout sélectionner
[spoiler=]#Include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $CoefW, $CoefH, $Width = 800, $Height = 600
Local $iCheckboxState = 0,$iCheckboxState2 = 0
$CoefW = @DesktopWidth / $Width
$CoefH = @DesktopHeight / $Height
Switch @DesktopHeight
case 600
$AvantCoche = ""
; case 720,768,864,900,960,1024,1050,1080
case else
$AvantCoche = " "
EndSwitch
GUICreate("2 checkboxes", 600, 200)
Local $Checkbox1 = GUICtrlCreateLabel("", 20, 20, int(22*$CoefH), int(22*$CoefH), -1, $WS_EX_CLIENTEDGE)
GuiCtrlSetFont(-1, 9*$CoefW, 600, 0, "Arial Unicode MS")
GUICtrlSetBkColor(-1, 0x00FF00)
GUICtrlCreateLabel("Grosse case à cocher hyper bien faite", 90, 20, 400, 35)
GuiCtrlSetFont(-1, 10*$CoefW, 600, 0, "Calibri")
Local $Checkbox2 = GUICtrlCreateLabel("", 20, 90, int(22*$CoefH), int(22*$CoefH), -1, $WS_EX_CLIENTEDGE)
GuiCtrlSetFont(-1, 9*$CoefW, 600, 0, "Arial Unicode MS")
GUICtrlSetBkColor(-1, 0xFFFF00)
GUICtrlCreateLabel(" Seconde Grosse case à cocher hyper bien faite", 90, 90, 500, 35)
GuiCtrlSetFont(-1, 10*$CoefW, 600, 0, "Calibri")
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg ; coche = HTML-code: ✓
Case $GUI_EVENT_CLOSE
Exit
Case $Checkbox1
$iCheckboxState = Not $iCheckboxState
GUICtrlSetData($Checkbox1, ($iCheckboxState ? $AvantCoche & ChrW(10004) : "") )
MsgBox(0, "", "La case 1 " & ($iCheckboxState ? "est" : "n'est pas") & " cochée.")
GUICtrlSetData($Checkbox1, ($iCheckboxState ? " " : "") )
$iCheckboxState = 0
Case $Checkbox2
$iCheckboxState2 = Not $iCheckboxState2
GUICtrlSetData($Checkbox2, ($iCheckboxState2 ? $AvantCoche & ChrW(10003) : "") )
MsgBox(0, "", "La case 2 " & ($iCheckboxState2 ? "est" : "n'est pas") & " cochée.")
GUICtrlSetData($Checkbox2, ($iCheckboxState2 ? " " : "") )
$iCheckboxState2 = 0
EndSwitch
WEnd
Exit[/spoiler]
Faut affiner un peu mais le résultat n'est pas mal.
Suis en train de mettre en application sur un de mes programmes que j'adapte à toutes les résolutions écrans, donc je revois tout.
Tous les boutons ont été refaits avec Udf StringSize, toutes les fenêtres adaptées à la résolution ainsi que les labels et mes cartes (à jouer).
Bonne soirée