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 :

Taille des fenêtres, des textes et des contrôles selon le style visuel de Windows


Sujet :

VB 6 et antérieur

  1. #1
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut Taille des fenêtres, des textes et des contrôles selon le style visuel de Windows
    Bonsoir à tous,

    Je rencontre le problème suivant, avec un programme fait avec VB5.

    Le programme peut marcher sur les différentes versions de Windows depuis Windows 1995

    Or en fonction du "style graphique" de windows, la bordure des fenêtres est plus ou moins épaisse, de même pour les textes

    Du coup il peut arriver que mes contrôles deviennent trop petits pour le texte, mais surtout que le positionnement dans la fenêtre ne soit plus correct

    C'est notamment le cas des fenêtres redimensionnables, dans lesquelles je recalcule la position et la taille des contrôles dans l’événement form.resize

    Comment faire ?

    Il faudrait que je récupère les dimenssions internes de la fenêtre.

    J'aurais aussi et toujours besoin des dimenssions externe (par exemple pour aligner plusieurs petites fenêtres)

    Merci

    A bientôt
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Salut

    la bordure des fenêtres est plus ou moins épaisse
    Pour l’intérieur de la fenêtre Me.ScaleHeight et Me.ScaleWidth, unités des dimensions renvoyées suivant le ScaleMode de la dite fenêtre.
    Pour l’extérieur de la fenêtre Me.Height, Me.Width, Me.Top et Me.Left, unités toujours renvoyées en Twips.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Bordure As Integer, BarTitr As Integer
    Bordure = (Me.Width - Me.ScaleWidth) / 2
    BarTitr = Me.Height - Me.ScaleHeight - (Bordure * 2)
    contrôles deviennent trop petits pour le texte
    Une façon simple, utiliser un Label avec propriété AutoSeize = True et Visible = False.

    Par exemple pour redimensionner un Textbox, attribuer le texte au Label invisible, et à la suite donner le même Width et Height que ce label au TextBox.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut

    Pour l’intérieur de la fenêtre Me.ScaleHeight et Me.ScaleWidth, unités des dimensions renvoyées suivant le ScaleMode de la dite fenêtre.
    Pour l’extérieur de la fenêtre Me.Height, Me.Width, Me.Top et Me.Left, unités toujours renvoyées en Twips.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Bordure As Integer, BarTitr As Integer
    Bordure = (Me.Width - Me.ScaleWidth) / 2
    BarTitr = Me.Height - Me.ScaleHeight - (Bordure * 2)
    C'est bien ça ! Je m'étais toujours demandé la différence entre ScaleWidth et Width, je pensais que c'était juste pour ces histoires d'unités en twips

    Pas bête du tout la façon de calculer BarTitr... Ce genre de truc devient vite énervant, surtout qu'on peut difficilement avoir sous la main un ordinateur avec chaque version de windows

    Au fait je crois me souvenir que c'était toi qui m'avait envoyé, après avoir testé CiDess il y a des années, un fichier .manifest alors que j'ignorais complètement ce à quoi cela pouvait servir... Si oui as-tu vu mon autre post à ce sujet ? Cette fois-ci je pense avoir vraiment compris le rôle des .manifest mais on est jamais sûr de rien dans le monde du VB...
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 180
    Points
    17 180
    Par défaut
    Au fait je crois me souvenir que c'était toi qui m'avait envoyé, après avoir testé CiDess il y a des années
    StretchBlt et taille de l'image (Juin 2008 ..... le temps passe)
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    StretchBlt et taille de l'image (Juin 2008 ..... le temps passe)
    Oui le temps passe... Cela nous rajeunis pas en effet Donc tu es en retraite maintenant ?

    Le temps est relatif aussi, avec les maths qui semblent éternelles, nous qui continuons à maintenir des logiciels qui ont 20 ans, et les nouvelles versions de Windows qui apparaissent tous les 2 ans

    Au moins les outils pour tour à bois de mon grand-père marchent toujours avec les tours actuels
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

  6. #6
    Membre éprouvé Avatar de electroremy
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Juin 2007
    Messages
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 934
    Points : 1 274
    Points
    1 274
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Pour l’intérieur de la fenêtre Me.ScaleHeight et Me.ScaleWidth, unités des dimensions renvoyées suivant le ScaleMode de la dite fenêtre.
    Pour l’extérieur de la fenêtre Me.Height, Me.Width, Me.Top et Me.Left, unités toujours renvoyées en Twips.
    Petite question : vaut-il mieux laisser le ScaleMode de la fenêtre en Twips ?

    Ou sinon, avec un ScaleMode en pixels cela n'aura aucune importance tant que l'on fait les conversions avec TwipsPerPixelX et TwipsPerPixelX ?

    Merci
    Quand deux personnes échangent un euro, chacun repart avec un euro.
    Quand deux personnes échangent une idée, chacun repart avec deux idées.

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

Discussions similaires

  1. [XL-2010] Remplacer du texte dans des zones de texte sur Word
    Par macmun dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/07/2016, 15h00
  2. Problème de miniature des fenêtres dans la barre des tâches
    Par parazitenew dans le forum Windows 7
    Réponses: 0
    Dernier message: 17/03/2015, 00h16
  3. Réponses: 3
    Dernier message: 06/06/2012, 19h07
  4. [WD-2007] Récupérer des liens OLE définis dans des zones de texte
    Par jejedi dans le forum VBA Word
    Réponses: 0
    Dernier message: 24/10/2011, 18h33
  5. [RegEx] Remplacer les <br/> par des sauts à la ligne dans des zones de texte
    Par doncandid dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2010, 17h59

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