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 :

Mise en forme du texte d'un CEdit


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut Mise en forme du texte d'un CEdit
    Bonjour,

    j'aimerais mettre en forme, cad en gras, italique ou souligné, des bouts de texte sélectionnés dans une CEdit après un clique sur un bouton, comme dans Word par exemple.

    Après de longue recherche, je n'ai trouvé que la façon de changer la mise en forme de tout le controle et donc tout le texte. Ce qui n'est pas le but.

    Au passsage, lorsque je met la totalité du texte en gras, le CEdit ne prend pas en compte la nouvelle largeur des caractères.

    Quelqu'un pourrait-il me donner un ptit coup de pouce?

  2. #2
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Bonjour,

    Je pense que ce que tu cherches à faire n'est pas possible avec un CEdit. Il faut que tu t'orientes vers le CRichEditCtrl.

  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
    salut,
    ce n'est pas possible avec un CEdit ,il faut utiliser un CRichEditCtrl.
    exemple d'une fonction héritée d'un CRichEditCtrl:
    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
     
    void CMyRichCtrl::SetFormatRange(int nStart, int nEnd, BOOL bBold, COLORREF clr)
    {
        if (nStart >= nEnd)
            return;
     
        SetSel(nStart, nEnd);
     
        DWORD dwEffects = bBold?CFE_BOLD:0;
     
        CHARFORMAT cfm;
        cfm.cbSize = sizeof(cfm);
        GetSelectionCharFormat(cfm);
     
        if ((cfm.dwMask & CFM_COLOR)  && cfm.crTextColor == clr && 
            (cfm.dwMask & CFM_BOLD) && (cfm.dwEffects & CFE_BOLD) == dwEffects)
            return;
     
        cfm.dwEffects = dwEffects;
        cfm.crTextColor = clr;
        cfm.dwMask = CFM_BOLD | CFM_COLOR;
     
        SetSelectionCharFormat(cfm);
    }
    cette fonction permet de bénéficier pour une plage donnée de caractères la couleur et la mise en gras éventuelle.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut
    Merci beaucoup.

    J'essaie de mettre ça en pratique. Ca m'a pas l'air super évident, vu que je suis pas encore très douée avec les MFC.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut
    Depuis que j'ai ajouté le CRichEditCtrl, ma boite de dialogue ne s'ouvre plus mais je n'ai aucune erreur à la compil, ni de crash à l'exécution.

    Vous auriez une idée?

  6. #6
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Je n'ai encore jamais utilisé de CRichEditCtrl, mais votre problème ne serait-il pas lié à ça ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 7
    Par défaut
    En fait j'avais déjà lu cette pas et appelée la bonne fonction mais pas dans la bonne classe, le projet contenant énormément de vues imbriquées.

    Merci en tout cas, et désolée.

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

Discussions similaires

  1. mise en forme du texte
    Par i_shinji dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2006, 12h58
  2. [Tableaux] Mise en forme champs texte
    Par dafalri dans le forum Langage
    Réponses: 2
    Dernier message: 12/12/2005, 15h04
  3. [CRYSTAL REPORT 8.5] Mise en forme du texte par balises
    Par GyLes dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 08/11/2005, 09h35
  4. Garder la mise en forme de texte dans un champ
    Par dany13 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 14h49

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