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

Re: [..] GUICtrlCreateRadio est il dimensionnable ?

Posté : sam. 12 déc. 2015 19:07
par mikell
jguinch tu aurais pu te lâcher :mrgreen:
► Afficher le texte
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é :wink:

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: &#10003;
            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