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 :

[MFC] inverser la couleur d'un texte


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
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut [MFC] inverser la couleur d'un texte
    J'affiche du texte dans une vue.

    Je souhaite afficher ce texte en mode inverse lorsque l'utilisateur clique pres du texte (genre texte selectionne).

    J'utilise la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monDC.SetROP2(R2_NOTCOPYPEN);
    mais ca ne fonctionne pas?? Pourtant c'est ce que j'utilise pour inverser les couleurs du dessin d'un rectangle par exemple.


    Merci d'avance.

    Virginie

  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,
    SetRop2 s'applique au dessin pas a du texte .
    pour changer la couleur voir CDC::SetTextColor et CDC::SetBkColor et eventuellement
    CDC::SetBkMode pour dire si le fond est transparent/opaque .
    ensuite reafficher le texte.

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    Ok,
    donc si je veux simuler une inversion de couleur pour mon texte du genre mon texte est rouge et si l'utilisateur le selectionne il s'affiche bleu,
    je suis obligee de recuperer la couleur de mon texte initial, d'inverser les bits et de lui reattribuer la nouvelle couleur avec la fonction CDC::SetTextColor ?

    Existe il une fonction qui me retourne l'inverse de la couleur passee en parametre? Ou là aussi je suis obligee de faire tout moi meme?

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 8
    Par défaut
    si tu connais le rect de ton texte, utilise la fonction ::InvertRect (sans doute membre de CDC)

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 125
    Par défaut InvertRect
    Salut ,
    myskina dit
    si tu connais le rect de ton texte, utilise la fonction ::InvertRect (sans doute membre de CDC)
    Lire le msdn a cette url http://msdn.microsoft.com/library/de...invertrect.asp

    myskina devrait en profiter pour tuer son doute a propos de la classe dont InverRect est membre.

    ginounet voulait inverser la couleur et non le contenu de son controle qui est plutot du texte.

    a mon humble avis,faudrait coder toi meme,si en t'y mettant tu as besoin de coup de main,fais le savoir...

    Bye

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    Merci à tous pour votre participation.

    En effet j'ai codé moi meme le mecanisme pour inverser les couleurs de mon texte.

    Voici le code :

    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
     
     
    COLORREF	     colorText;
    int	     rInv, bInv, gInv;
    CString	    strColor;
     
     
    /*hDc est un handle sur mon device context passe en parametre de ma fonction*/
     
     
    if (bCouleurInverse)
    {
           //il faut inverser la couleur initiale
           colorText = GetTextColor(hDc);
     
          //rouge
         strColor.Format("%d", GetRValue(colorText));
         rInv = 255 - atoi(strColor);
     
         //bleu
         strColor.Format("%d", GetBValue(colorText));
         bInv = 255 - atoi(strColor);
     
         //vert
         strColor.Format("%d", GetGValue(colorText));
         gInv = 225 - atoi(strColor);
     
         //applique la nouvelle couleur à mon texte)		
         SetTextColor(hDc, RGB(rInv, gInv, bInv));
    }
    Si certains trouvent qu'il y a plus simple ou mieux n'hesitez pas à l'ecrire.

    Virginie

  7. #7
    Invité
    Invité(e)
    Par défaut
    Il ya juste une petite erreur de ta part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //vert 
         strColor.Format("%d", GetGValue(colorText)); 
         gInv = 225 - atoi(strColor);
    le 225 est a remplacé par 255
    sinon pour moi c parfait

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

Discussions similaires

  1. [MFC]Changer la couleur d'un onglet...
    Par Deedier dans le forum MFC
    Réponses: 14
    Dernier message: 26/04/2005, 16h07
  2. [MFC]Changer la couleur d'un progress bar
    Par Deedier dans le forum MFC
    Réponses: 1
    Dernier message: 21/04/2005, 18h39
  3. [MFC] gestion de couleurs
    Par Aradesh dans le forum MFC
    Réponses: 12
    Dernier message: 06/04/2005, 08h41
  4. modifier la couleur d'un texte dans un input text
    Par mic79 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/01/2005, 16h45
  5. [MFC] RichEdit et couleurs
    Par basnifo dans le forum MFC
    Réponses: 12
    Dernier message: 25/01/2004, 17h07

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