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 :

Dimensions d'un texte dans une fonte donnée


Sujet :

MFC

  1. #1
    Membre expérimenté Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Par défaut Dimensions d'un texte dans une fonte donnée
    Bonjour,

    Comment feriez vous pour connaître les dimensions (en mm, pixels, ...) d'une
    chaîne de caractères donnée connaissant la fonte utilisée.

    Je m'explique : j'utilise une imprimante (non gérée par Windows, mais pilotée
    par commandes par liaison série) qui utilise une fonte (que je sais récupérer).
    Elle ne permet d'imprimer que sur une certaine dimension et audela, elle part
    en erreur. Je veux donc connaître la taille (en mm) de ma chaîne et la couper
    au bon endroit si nécessaire...

    Voilà, je crois avoir été complet. J'ai trouvé des fonctions sur un CDC, mais
    je ne sais pas lier celui ci avec une fonte.

    Merci pour toute piste que vous pourrier me donner.

  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

  3. #3
    Membre expérimenté Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Par défaut
    le truc, c'est que je n'ai pas de DC ... j'ai juste une classe qui sert d'interface
    (avec un programme, elle n'est pas graphique) avec l'imprimante...

    je vais continuer dans cette voie ...

  4. #4
    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
    tu seras quand meme obligé de creer un dc en fonction de l'imprimante ...

  5. #5
    Membre expérimenté Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Par défaut
    J'ai adapté un peu la classe proposée ici:
    http://c.developpez.com/faq/vc/?page=Fontes#CreateFonte

    J'y ai rajouté la chose suivante:
    FontEx.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DWORD GetTextSize(const char * lpszText, int nNbPoints, const char * szFontName, const char * szFontFullName);
    FontEx.cpp
    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
     
    DWORD CFontEx::GetTextSize(const char * lpszText, int nNbPoints, const char * szFontName, const char * szFontFullName)
    {
      CSize size(0,0);
      if ( GetFont(nNbPoints, szFontName, szFontFullName, NULL) )
      {
        CDC * pDC = CreateScreenDC();
        pDC->SelectObject(this);
        size = pDC->GetTextExtent(lpszText);
     
        pDC->DeleteDC();
      }
     
      return MAKELONG(size.cx, size.cy);
     
    }
    Est ce que c'est pertinent ? Et est ce que j'obtiendrai un résultat "correct" ?

  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
    salut,
    pertinent pour un dc d'ecran.
    je suggere de passer le dc en argument optionnel (pointeur sur dc null)
    si il est null on crée un dc ecran sinon on utilise le dc passé en argument
    et on ne fait pas deleteDC ...

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/03/2008, 10h21
  2. Réponses: 2
    Dernier message: 07/11/2007, 17h57
  3. Réponses: 3
    Dernier message: 21/06/2007, 01h10
  4. Réponses: 4
    Dernier message: 11/09/2006, 13h47
  5. Remplacer un texte dans une cellule Excel à partir d'un point donné
    Par tonyC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2006, 19h05

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