IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

changer la police de la barre de menu [Trucs & Astuces]


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Points : 92
    Points
    92
    Par défaut changer la police de la barre de menu
    Salut
    je développe avec une résolution de 800 x 600, et à l'aide de code je redimensionne les forms et controls pour une résolution supérieure comme 1024 x 768.
    jusque là tout va bien, mais je n'arrive pas a modifier la police de la barre de menu, ce qui fait que plus la résolution est haute, plus le texte des menus parait petit.

    j'imagine que si il existe un moyen de changer la police, la hauteur de la barre s'ajustera en fonction de celle ci, mais comment ??

  2. #2
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Points : 92
    Points
    92
    Par défaut
    précision: c'est en vb6 et c'est la hauteur de police que je veux changer, et du même coup, la hauteur de la barre de menu elle-même.

  3. #3
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    http://www.vb-helper.com/howto_menu_font.html

  4. #4
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Points : 92
    Points
    92
    Par défaut
    je te remerci pour la source
    mais j'avoue ne pas en comprendre le code, et lorsque que je tente le pas à pas pour le suivre, ce code gèle mon VB.
    n'y aurait-il pas un paramètre simple qui concerne seulement la taille de police?

    Que devrais-je garder au minimum de ce code?

    pour mieux cerner je vais afficher la procédure prise sur ce forum que j'utilise..

    dans un module de variables je déclare...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Résolution correspondant à la form telle qu'elle est en mode conception
    Public Const ResolutionRefX As Long = 800
    Public Const ResolutionRefY As Long = 600
     
    'Rapport entre la résolution actuelle et celle de référence
    Public RatioX As Single
    Public RatioY As Single
     
    'Résolution actuelle
    Public ResolutionX As Long
    Public ResolutionY As Long
    à la première form qui se charge...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Inscription de valeur de résolution
    ResolutionX = Screen.Width / Screen.TwipsPerPixelX
    ResolutionY = Screen.Height / Screen.TwipsPerPixelY
     
    RatioX = ResolutionX / ResolutionRefX
    RatioY = ResolutionY / ResolutionRefY
    à chacun des form_load()..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Adapte les dimensions en fonction de la résolution actuelle
    If RatioX > 1 And RatioY > 1 Then
           ResizeForResolution RatioX, RatioY, Me
    End If
    et enfin la fonction dans un module..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Public Function ResizeForResolution(ByVal RatioX As Single, ByVal RatioY As Single, ByVal MyFrm As Form)
    On Error Resume Next
    Dim ctl As Control
    Dim RatioPolices As Single
    Dim cnt As Integer
     
    RatioPolices = (RatioX + RatioY) / 2
    If MyFrm.Name = "frmPrincipal" Then
        MyFrm.FontSize = MyFrm.FontSize * RatioPolices
    End If
    MyFrm.Width = MyFrm.Width * RatioX
    MyFrm.Height = MyFrm.Height * RatioY
     
    For Each ctl In MyFrm.Controls
        If TypeOf ctl Is ComboBox Then
            ctl.Move ctl.Left * RatioX, ctl.Top * RatioY, ctl.Width * RatioX
            ctl.Font.Size = ctl.Font.Size * RatioPolices
        ElseIf TypeOf ctl Is SSDBGrid Or TypeOf ctl Is SSDBCombo Then
            ctl.Move ctl.Left * RatioX, ctl.Top * RatioY, ctl.Width * RatioX, ctl.Height * RatioY
            ctl.Font.Size = ctl.Font.Size * RatioPolices
            ctl.HeadFont.Size = ctl.HeadFont.Size * RatioPolices
            ctl.RowHeight = ctl.RowHeight * RatioY
            For cnt = 0 To (ctl.Columns.Count - 1)
                ctl.Columns(cnt).Width = ctl.Columns(cnt).Width * RatioX
            Next cnt
        Else
            ctl.Move ctl.Left * RatioX, ctl.Top * RatioY, ctl.Width * RatioX, ctl.Height * RatioY
            ctl.Font.Size = ctl.Font.Size * RatioPolices
        End If
    Next
     
    End Function
    à la frmPrincipal je veux changer la taille de la police d'après la variable RatioPolices.

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Il n'est pas possible de changer la police du menu sans passer par les API. Ou alors il faut utiliser un menu redeveloppé, je crois que ca existe en gratuit.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Points : 92
    Points
    92
    Par défaut
    Merci alors il me reste à étudier en profondeur cette source et essayer d'arrivé à une fonction simplifiée.
    Le bobo est qu'en exécution avec point d'arrêt ce code cause une 'opération illégale' et Vb ferme.

    Mais bon je suis tenace alors en y consacrant le temps j'y arriverai.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2012, 14h01
  2. Changer la couleur des barres du menu
    Par beegees dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/02/2011, 20h19
  3. Comment changer la police de caractère d'un menu
    Par RémiONERA dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/11/2005, 21h05
  4. barre de menu principal
    Par norfelt dans le forum IHM
    Réponses: 10
    Dernier message: 27/10/2003, 11h37
  5. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo