VB6 : différence de taille de font XP <--> Seven [Résolu]

Messages postés
15
Date d'inscription
mardi 29 août 2006
Dernière intervention
17 novembre 2012
- - Dernière réponse : Renaud974
Messages postés
15
Date d'inscription
mardi 29 août 2006
Dernière intervention
17 novembre 2012
- 17 nov. 2012 à 10:50
Bonjour,

Je suis confronté au problème suivant : je développe sous XP en VB6 une application que je souhaite également faire tourner sous Seven.

J'utilise la police par défaut de vb6. Sous Seven, elle apparaît agrandie.

J'ai fait pas mal de recherches sur le sujet, mais je n'ai rien trouvé d'exploitable à mon niveau.

Du coup j'ai écrit un petit utilitaire qui permet de demander une taille de police et de lire la taille de ce qui est affiché par VB (ben oui, c'est pas pareil!), on voit que la police par défaut de VB accepte des tailles de 8.25 - 9.75 - 12 - 13.5...
J'ai demandé à un ami de faire tourner sous Seven (mon ordi sous Seven est dans des cartons de déménagement) et il obtient des tailles de 11.5 - 11.75 - 14.75...
Au vu d'une capture d'écran, la taille 11.5 sous Seven correspond à 9.75 sous XP et il est impossible d'obtenir l'équivalent à 8.25

Ci-dessous le code du petit soft que j'ai écrit pour tester ça (le .exe dans le lien ci-dessus).
Option Explicit

Dim TaillePolice As Single

Private Sub Form_Load()
   TaillePolice = 8
   lblTaillePolice.Caption = CStr(TaillePolice)
   lblTexteDeTest.FontSize = TaillePolice
   lblTailleAffichee = CStr(lblTexteDeTest.FontSize)
   chkFond.Value = vbChecked
End Sub

Private Sub cmdTaillePolice_Click(Index As Integer)
   Select Case Index
   Case 0
   'diminuer la taille
      If TaillePolice >3 Then TaillePolice TaillePolice - 0.25
   Case 1
   'augmenter la taille
      If TaillePolice < 100 Then TaillePolice = TaillePolice + 0.25
   End Select
   lblTaillePolice.Caption = CStr(TaillePolice)
   lblTexteDeTest.FontSize = TaillePolice
   lblTailleAffichee.Caption = CStr(lblTexteDeTest.FontSize)
End Sub

Private Sub chkCadre_Click()
   If chkCadre.Value = vbChecked Then
      lblTexteDeTest.BorderStyle = 1
   ElseIf chkCadre.Value = vbUnchecked Then
      lblTexteDeTest.BorderStyle = 0
   End If
End Sub

Private Sub chkFond_Click()
   If chkFond.Value = vbChecked Then
      lblTexteDeTest.BackStyle = 1
   ElseIf chkFond.Value = vbUnchecked Then
      lblTexteDeTest.BackStyle = 0
   End If
End Sub


Il semblerait donc que la police utilisée sous XP ne soit pas présente sur Seven et qu'il utilise une autre police dont il agrandit la taille. En effet, sous XP je suis en 8.25 et ça devient du 11.5 sous Seven, équivalent à du 9.75 XP...
Sauriez-vous me dire comment faire pour avoir le même aspect sous XP et Seven? Sans bidouiller la base de registre, il faudrait un truc qui marche assez simplement. Genre changer de police, en installer une nouvelle, ou un truc du genre (que je n'ai jamais fait, mais je peux apprendre...).

Merci d'avance de votre aide.
Bien cordialement,
Renaud.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
15
Date d'inscription
mardi 29 août 2006
Dernière intervention
17 novembre 2012
3
Merci
Bonjour,

J'avais pensé à 1), mais je trouve ça trop lourd et un peu en-dehors de ma compétence actuelle.
J'étais en train de coder 2).
Est-il possible de modifier la police par défaut de vb6 sans le faire dans le code?

Pour le moment, j'utilise un objet StdFont, mais ça m'oblige à l'affecter à tous mes contrôles, ce qui est un peu lourd :
 Dim PoliceNormal As New StdFont
   Dim PoliceGras As New StdFont
   
   '********* Gestion des polices : on passe tout en Arial *********
   PoliceNormal.Name = "Arial"
   PoliceGras.Name = "Arial"
   PoliceNormal.Bold = False
   PoliceGras.Bold = True
   PoliceNormal.Size = 9
   PoliceGras.Size = 9
   ' affectation des polices
   Set Tree.Font = PoliceNormal  'treeview
   Set Label5.Font = PoliceGras  'titres
   'etc.
  


Renaud.

Merci Renaud974 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Renaud974
Messages postés
14318
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
11 décembre 2018
0
Merci
Bonjour,

VB6 n'est pas très récent, du coup quelques incompatibilités peuvent apparaitre.

Ensuite, j'ai aussi constaté ce problème, mais sans trouver d'autres solutions que de comparer la version avant et après pour mettre les textes à la bonne taille.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Commenter la réponse de NHenry
Messages postés
15
Date d'inscription
mardi 29 août 2006
Dernière intervention
17 novembre 2012
0
Merci
Bonjour,

Merci pour votre réponse. Vous serait-il possible de préciser ce que vous entendez par "comparer la version"? La version de l'OS?

Renaud.
Commenter la réponse de Renaud974
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Je ne note personnellement pas cette différence entre les deux OS, pour la même police
Il est par contre clair que si la police MS Sans Serif (celle utilisée par défaut par VB6) n'est pas installée sur Seven, elle va être remplacée par une police disponible, avec les aléas dénoncés.
Solutions :
1) Lourde : installer MS Sans Serif sous Seven (la distribuer avec ton appli)
2) Légère et bien plus souple : Choisir (en mode développement) une police plus "partagée", telle Tahoma

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Est-il possible de modifier la police par défaut de vb6 sans le faire dans le code?

Pas à ma connaissance
Tu n'es par ailleurs bien entendu pas obligé de le faire par code, la chose étant possible depuis la fenêtre des propriétés de chaque contrôle.
Si maintenant, tu cherches à ne pas trop travailler depuis la fenêtre des propriétés de chaque contrôle, un petit truc : tu édites (depuis l'explorateur) chaque fichier .frm que tu ouvres avec le bloc-notes. Et tu y modifies tes fonts par remplacement.
Je te conseille Tahoma.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Commenter la réponse de ucfoutu
Messages postés
15
Date d'inscription
mardi 29 août 2006
Dernière intervention
17 novembre 2012
0
Merci
J'ai essayé Tahoma, mais c'est un peu large je trouve. Je préfère le faire par le code et l'objet StdFont car ça permet de faire des essais de font différentes en changeant juste deux lignes.

Je viens de recevoir confirmation que ça fonctionne maintenant avec ma modif'.

Merci de vous être penché sur mon problème.

Renaud.
Commenter la réponse de Renaud974

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.