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 :

Changer la couleur du texte et du background pour une selection d'un CListCtrl


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Points : 18
    Points
    18
    Par défaut Changer la couleur du texte et du background pour une selection d'un CListCtrl
    bonjour,

    connaissez vous une méthode pour modifier la couleur (texte et background) d'un item sélectionner dans une CListCtrl ?

    Ci possible sans utiliser le DrawItem car je ne veux pas tout redessiner (A moins de pouvoir seulement faire ma modification pour un item sélectionné).
    Pour info j'utilise actuellement le CUSTOM DRAW(message NM_CUSTOMDRAW) mais lorsque je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    switch(lpLVCustomDraw->nmcd.dwDrawStage)
    {
    case CDDS_ITEMPREPAINT:
    if ((lpLVCustomDraw->nmcd.uItemState & ODS_FOCUS) ||
        (lpLVCustomDraw->nmcd.uItemState & ODS_SELECTED))
    {
       lpLVCustomDraw->clrText = RGB(255,255,0); // valeur arbitraire !
       lpLVCustomDraw->clrTextBk = RGB(255,0,0); // valeur arbitraire !
    }

    ... je n'ai pas de changement. La sélection est en bleu.

    J'accepte toute les idées qui me donnerais une piste

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 32
    Points : 39
    Points
    39
    Par défaut
    Dans le MSDN il est dit que pour
    dwDrawStage = CDDS_ITEM
    Indicates that the dwItemSpec, uItemState, and lItemlParam members are valid.

    Dans les autres cas il semblerait que ces champs ne sont pas mis à jour, ils ne reflètent donc pas l'état courant de l'item lorsque case CDDS_ITEMPREPAINT.

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    çà s'améliore, j'ai ajouter le test suivant :

    (lpLVCustomDraw->nmcd.uItemState & CDIS_HOT)

    pour appliquer la couleur qui va bien et cela fonctionne sur le survol de la souris au dessus d'un élément (HOT TRACK). Par contre j'ai toujours la couleur bleu de windows pour le clic sur un item... je pensais que le test sur FOCUS ou SELECTED serait suffisant mais non !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		if ((lpLVCustomDraw->nmcd.uItemState & CDIS_FOCUS) ||
    		    (lpLVCustomDraw->nmcd.uItemState & CDIS_HOT) ||
    			(lpLVCustomDraw->nmcd.uItemState & CDIS_SELECTED))
    		{
    			lpLVCustomDraw->clrTextBk = COLOR_ORANGE;
    		}
    je cherche pour ce dernier problème, si qq'un connais la solution, il est le bien venu !!!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    J'avance à petit pas.

    Il semble dans les msdns que l'on ne puisse pas changer la couleur ou la font pour un item sélectionné. Donc tout s'explique.

    Je vais devoir intercepter moi même les évènements de sélection d'un item pour empêcher la surbrillance en bleu par défaut ! je ne sais pas qu'elle est l'id du message pour la sélection et quelles sont les étapes d'un click souris...

Discussions similaires

  1. [VBA EXCEL] changer la couleur du texte de cellules
    Par dume75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/02/2006, 23h08
  2. [disabled]Changer la couleur du texte
    Par ozzmax dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 18/01/2006, 21h09
  3. [DropDownList] changer la couleur du texte
    Par Scorff dans le forum ASP.NET
    Réponses: 39
    Dernier message: 30/08/2005, 14h30
  4. Réponses: 2
    Dernier message: 03/02/2005, 23h42
  5. Changer la couleur du texte lors passage souris sur un TD !
    Par Kokito dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/01/2005, 15h40

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