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

MFC Discussion :

Redimensionner CStatic a son contenu


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut Redimensionner CStatic a son contenu
    Bonjour

    J'aimerai savoir s'il est possible de connaitre l'espace utilisé par un texte dans un CStatic.

    Ceci afin de redimensionner le CStatic a son contenu.

    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    oui c'est possible tu veux le faire automatiquement ou à la demande ?

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    un truc comme ça devrait suffire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        CRect Rect;
        MyStatic.GetClientRect(&Rect);    
        CDC *pDC=MyStatic.GetDC();
        CFont *pFont=MyStatic.GetFont();
        CFont *pOldFont=pDC->SelectObject(pFont);
            CString str;
            MyStatic.GetWindowText(str);
        CSize size=pDC->GetTextExtent(str);
        pDC->SelectObject(pOldFont);
        MyStatic.ReleaseDC(pDC);
     
        MyStatic.SetWindowPos( NULL,0,0,size.cx+2,Rect.Height(),SWP_NOMOVE | SWP_NOZORDER); // uniquement la taille

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    Merci

    je vais essayer.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    Cela fonctionne un peu...

    Sur la longueur c'est bon, il retourne bien le width du texte.
    mais a une condition, que le texte ne soit pas multilignes... dans ce cas il ne
    prend pas en compte les retours chariots et concidere que tout est concaténé.

    Et pour la hauteur cela ne fonctionne pas du tout... il me retourne toujours
    une valeur beaucoup plus grande que la hauteur de la ligne.

    Dois je faire quelque chose d'autre ? car la doc sur GetTextExtent est vraiment limitée.

    Je cherche de mon coté mais si quelqu'un connait la solution je suis prenneur



    Merci

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    ha ben c'est sûr tu n'as pas precisé que c'etait un contrôle multi-ligne...
    d'ailleurs pourquoi ne pas activer l'ascenseur dans ce contexte ?
    sinon le principe est le même
    pour chaque ligne tu calcules la taille de la ligne:
    tu cumuls la hauteur et tu ne retiens que la largeur la plus grande.
    le setwindows devra utiliser ces valeurs avec quelques pixels en plus .

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

Discussions similaires

  1. redimensionnement dynamique de frame en fonction de son contenu
    Par kowal_2205 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/08/2007, 15h37
  2. redimensionner une jframe et son contenu.
    Par rageice dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 11/07/2007, 17h15
  3. Réponses: 2
    Dernier message: 04/10/2006, 09h22
  4. Redimensionner une Frame et son contenu ?!?
    Par talkhor dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/01/2006, 12h28
  5. Comment redimensionner un TEdit en fonction de son contenu ?
    Par Tempotpo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 25/07/2005, 21h52

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