[R] Fixer la taille de la police de caractère dans un gui

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[R] Fixer la taille de la police de caractère dans un gui

#1

Message par Laddy »

Bonjour à tous,
ça fait un ti moment que je n'avais pas codé
Mes salutations à ZeShrek :D :wink:
j'ai un ti soucis avec mon chromeManager.
J'ai travaillé dessus le week end passé, double clic sur la listview, suppression de pepperflash, et autres choses, mais ce n'est pas le problème qui existe depuis la version précédante.

Si je change de PC qui a un fort zoom (pc relié à la tv en hdmi) au niveau résolution.

J'ai ma police d'écriture qui déborde et la taille de ma gui bizarre.

Je voudrais savoir comment je peux fixer la taille de la police d'écriture sans avoir ce problème :

Gui de mon interface.
Ja'i pourtant utiliser GuiCtrlSetFont, y a t il un autre moyen ?

Code : Tout sélectionner

Global $ChromeManager = GUICreate("Google Chrome - Choisissez un profil utilisateur", 345, 218, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Sortie")
$backgroundColor = GUISetBkColor($color, $ChromeManager)
Global $ListProfil = GUICtrlCreateList("", 168, 48, 169, 73)
Global $StartChrome = GUICtrlCreateButton("Demarrer Chrome", 144, 168, 97, 33, $WS_GROUP)
GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($StartChrome, "Start") ; *****
Global $Quit = GUICtrlCreateButton("Quitter", 249, 168, 87, 33, $WS_GROUP)
GUICtrlSetOnEvent($Quit, "Sortie") ; *****
Global $CreateProfil = GUICtrlCreateButton("Créer un profil", 8, 32, 145, 33, $WS_GROUP)
GUICtrlSetOnEvent($CreateProfil, "CreateProfil") ; *****
GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
Global $Label1 = GUICtrlCreateLabel(" Chrome conserve vos préférences et paramètres dans votre profil", 8, 8, 324, 17)
GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
Global $Delete = GUICtrlCreateButton("Supprimer un profil", 8, 80, 145, 33, $WS_GROUP)
GUICtrlSetOnEvent($Delete, "Delete") ; *****
GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
Global $Backup = GUICtrlCreateButton("Sauvegarder Profil", 8, 128, 147, 33, $WS_GROUP)
GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
GUICtrlSetOnEvent($Backup, "Backup") ; *****
GUISetState(@SW_SHOW, $ChromeManager)
#EndRegion ### END Koda GUI section ###
 
voici une capture d'écran fait sur mon pc xp pro :
Image
là on voit déja des soucis et sur mon pc branché à la tv , la police ne tient pas dans les boutons.
Je ferai une capture ce week end
C'est ennuyeux....

Merci à ceux qui me répondront.

Laddy
Modifié en dernier par Laddy le dim. 01 janv. 2012 12:59, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2104
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#2

Message par TommyDDR »

Content de vous revoir laddy ^^

Pouvez vous poster une image de cette police débordante ?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#3

Message par Laddy »

Bonjour TommyDDR
ah super je vois que tout le monde est là, moi de meme espere que vous allez bien.
Moi super :D

je ferai une capture d'écran ce soir ou demain à partir de ma tv

mERCI
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#4

Message par zeshrek »

Hello Laddy, content de te revoir.
Ici, j'ai pas acces aux PJ (si la mision se finissait pas dans 8 jours, je mettrai un proxy a la maison pour bypasser les restrictions... !), donc je peux pas trop regarder ce que tu fais, mais je regarderai ca ce soir
Si vis pacem para bellum
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#5

Message par mikell »

La fonction StringSize de Melba23 pourrait peut-être aider
Cette fonction calcule l'espace nécessaire dans un controle pour loger une string en fonction du texte et de la police utilisés
Mais on pourrait très bien l'employer pour faire l'inverse, càd calculer la taille de la police pour que la string rentre dans le controle en fonction du texte et de la place disponible
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#6

Message par Laddy »

Hello Zeshrek
contente d'avoir de tes nouvelles, je vois que tu es toujours au poste :D

mikell > merci je regarde dès que j'aurai un moment et surtout du temps pour tester car c'est ce qu'il ma manque le plus...et à la lecture des exemples ça m'air compliqué.

Edit : si je retire : GUICtrlSetFont(8, 10, 400, 0, "MS Sans Serif")
Ma police d'écriture est normal sous xp

Image

Blop
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#7

Message par mikell »

Laddy a écrit : à la lecture des exemples ça m'air compliqué
Pas vraiment...
C'est vrai que c'est peut-être un peu lourd pour ce que tu veux mais ça fonctionne
Ce script ajuste la taille de la police en fonction de la taille du bouton
► Afficher le texte
EDIT
et m... autant pour moi :mrgreen: j'avais pas remarqué

Code : Tout sélectionner

GUICtrlSetFont([color=#FF0000]controlID[/color], 8, 10, 400, 0, "MS Sans Serif")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#8

Message par Laddy »

Arf je me suis emmélée les pinceaux entre GuiSetFont, et GuiCtrlSetFont.
D'ailleurs je ne pense pas avoir saisi la différence entre les deux...

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;Opt("GUIOnEventMode", 1)
;GUIRegisterMsg($WM_COMMAND, "DoubleClick")

#Region ### START Koda GUI section ### Form=C:\Program Files\AutoIt3\SciTE\Koda\Forms\GuiChromeProfil.kxf
;GUI PRINCIPAL
Global $InstallDir, $UserName, $DossierSelectionne, $Form2, $VersionIni, $VersionBDR, $NOM_ZIP, $Resultat, $LBN_DBLCLK

Local $color = 0xFFFFFF

Global $ChromeManager = GUICreate("Google Chrome - Choisissez un profil utilisateur", 345, 218, 192, 124)
;;GUICtrlSetFont($ChromeManager,8, 10, 400, 0, "MS Sans Serif")
;GUISetOnEvent($GUI_EVENT_CLOSE, "Sortie")
$backgroundColor = GUISetBkColor($color, $ChromeManager)
Global $ListProfil = GUICtrlCreateList("", 168, 48, 169, 73)
Global $StartChrome = GUICtrlCreateButton("Demarrer Chrome", 144, 168, 97, 33, $WS_GROUP)
GUISetFont(8, 10, 400, 0, "MS Sans Serif")
;;GUICtrlSetFont(-1,8, 10, 400, 0, "MS Sans Serif")
;GUICtrlSetOnEvent($StartChrome, "Start") ; *****
Global $Quit = GUICtrlCreateButton("Quitter", 249, 168, 87, 33, $WS_GROUP)
;GUICtrlSetOnEvent($Quit, "Sortie") ; *****
Global $CreateProfil = GUICtrlCreateButton("Créer un profil", 8, 32, 145, 33, $WS_GROUP)
;GUICtrlSetOnEvent($CreateProfil, "CreateProfil") ; *****
GUISetFont(8, 10, 400, 0, "MS Sans Serif")
;;GUICtrlSetFont($CreateProfil,14, 10, 400, 0, "MS Sans Serif")
Global $Label1 = GUICtrlCreateLabel(" Chrome conserve vos préférences et paramètres dans votre profil", 8, 8, 324, 17)
GUISetFont(8, 10, 400, 0, "MS Sans Serif")
;;GUICtrlSetFont(-1,8, 10, 400, 0, "MS Sans Serif")
Global $Delete = GUICtrlCreateButton("Supprimer un profil", 8, 80, 145, 33, $WS_GROUP)
;GUICtrlSetOnEvent($Delete, "Delete") ; *****
GUISetFont(8, 10, 400, 0, "MS Sans Serif")
;;GUICtrlSetFont(-1,8, 10, 400, 0, "MS Sans Serif")
Global $Backup = GUICtrlCreateButton("Sauvegarder Profil", 8, 128, 147, 33, $WS_GROUP)
GUISetFont(8, 10, 400, 0, "MS Sans Serif")
;GUICtrlSetFont(-1,8, 10, 400, 0, "MS Sans Serif")
;GUICtrlSetOnEvent($Backup, "Backup") ; *****
GUISetState(@SW_SHOW, $ChromeManager)
#EndRegion ### END Koda GUI section ###

Do
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $StartChrome
            ;Start()
        Case $CreateProfil
            ;CreateProfil()
        Case $Delete
            ;Delete()
        Case $Backup
            ;Backup()
        Case $Quit
            Exit
    EndSwitch
Until $Msg = $GUI_EVENT_CLOSE
 
Voici le soucis dans je parle sur ma tv :
Image

ma config tv :

Image

Image

Je pense que c'est à cause du 200% sur la police d'écriture mon but serait de fixer la taille de la gui et de la police d'écriture mais je ne sais pas si c'est possible.
Sur PC normal je n'ai pas ce type de bug.

Edit
mikell > je vais regarder ton script merci
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#9

Message par mikell »

Ben pourquoi ne pas imposer une taille de gui et de boutons à 200% en cas d'affichage à résolution TV ?
Si tu mets la taille de police à 200% pour mieux y voir, réduire ensuite la police serait pas logique ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#10

Message par Laddy »

Me sens un peu stupide mais normalement cette ligne ne fixe pas la taille de la gui ?

Code : Tout sélectionner

Global $ChromeManager = GUICreate("Google Chrome - Choisissez un profil utilisateur", 345, 218, 192, 124)
pour ton idée, je ne vois pas comment faire.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#11

Message par mikell »

Ben oui la taille de ta gui est fixée au départ
Mais ton problème est de faire rentrer une police de taille 200% dans une gui qui reste à 100%
Donc une solution est que le script au lancement détecte la résolution d'affichage, et si tu es en 1832x1042 alors il te fait une gui de taille 2, sinon il reste en taille 1 Image
Ce genre de code devrait le faire
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#12

Message par Laddy »

Ok merci je vais tester ton code dès que possible, la tv est occupé lol
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#13

Message par zeshrek »

sinon, il y a la solution de contournement à la police de caractere zoomée à 200%.
Comment ?
En utilisant non pas un texte pour remplir les boutons mais une image. Par exemple celle du snapshot des boutons corrects de la version affichée sur moniteur. Ainsi, ca devient des bitmap, donc insensibilité au parametre de police.
Et pas besoin de détecter la résolution de l'écran, ce qui peut aussi etre la cause de dysfonctionnements. Qui peut dire qu'il n'y a pas un ordi/portable qui ne sera pas dans la même résolution que sa télé ?
Si vis pacem para bellum
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#14

Message par mikell »

Bien pensé les images pour les boutons
Mais ça ne résoud pas le problème de l'affichage dans la Listbox
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#15

Message par zeshrek »

Ah ouais... c'pas faux...
Alors plutot que de se baser sur la résolution de l'écran, il faudrait regarder dans la registry le facteur de multiplication de la police de facon a appliquer son inverse a la taille de la police utilisée dans la GUI.

Donc logiquement il faut lire le contenu de
Clé : HKEY_CURRENT_USER\Control Panel\Desktop
Valeur : LogPixels

Si la valeur existe pas, logiquement c'est qu'on n'a jamais changé ce parametre
Sinon (sous seven) elle contient :
- 96 quand on est a 100% (me demande pas pkoi c'est 96 et pas 100)
- 120 quand on est a 125% (meme remarque que ci dessus)
Pour les autres OS ou pour un autre facteur de zoom, m'est avis qu'il faudra faire des éssais.

Je vois pas mieux.
Si vis pacem para bellum
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#16

Message par Iste »

zeshrek a écrit :(me demande pas pkoi c'est 96 et pas 100)
car on parle de police est que par defaut on est a 96 pixels par pouce
Signez ici
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#17

Message par mikell »

Hmm dans ce cas alors utiliser

Code : Tout sélectionner

$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DisplayConfiguration")
For $objItem In $colItems
      $ppp = $objItem.LogPixels 
Next
Msgbox(0,"","LogPixels : " & $ppp  & " ppp" )
et
$s = 100/$ppp
GUISetFont(Round(8*$s), 10, 400, 0, "MS Sans Serif")
:?:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#18

Message par Laddy »

Bonjour à tous les deux

mikell > j'ai testé ton code sur la détection de la résolution ça fonctionne super bien l'interface apparait normalement maintenant.
J'ai testé sur le pc branché à ma tv, sur mon netbook (tous deux sous win 7) et sur mon pc win xp.

C'est sûr que si je vais sur une autre tv je me retrouverai avec le même soucis mais c'est déjà un pas.

Zeshrek > sur mon netbook LogPixels n'existe pas, je n'ai pas encore regardé sur ma tv je verrai plus tard quand elle sera libre et je testerai le retour du code de mikell
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#19

Message par mikell »

Laddy a écrit : sur mon netbook LogPixels n'existe pas
Etrange...
Comme dit l'ogre la valeur LogPixels peut ne pas exister dans le registre si le paramètre n'a pas été changé, mais en détection WMI en principe on la récupère toujours
Sur une autre tv même avec une résolution différente ce n'est pas réellement un problème de résolution, c'est surtout le fait d'augmenter la taille de la police qui mène à augmenter celle de la gui, et LogPixels permettrait de récupérer ce paramètre d'augmentation de la taille de police donc de déterminer le facteur de taille à utiliser pour la gui
Heu je ne suis pas sûr d'avoir été très clair là :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..] Fixer la taille de la police de caractère dans un g

#20

Message par Laddy »

Bonjour
j'ai pas pu testé le script mikell mais j'ai pu regarder la clé de registre donnée par ZeShrek.

LogPixels donne une valeur : 0x00000C (192)
Répondre