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

Windows Discussion :

Rafraichir une fenetre ??


Sujet :

Windows

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut Rafraichir une fenetre ??
    Bonjour,
    je commence la programmation "visuel" et voila mon problème:
    j'ai une listView (celle ou l'on peut mettre des colonnes..)
    et je remplis cette listeview d'information et certaines informations ont des couleurs différentes !
    exemple:
    1ere ligne en bleu
    2eme en rouge
    3eme en bleu

    Lorsque ensuite je selectionne une ligne elle est recouverte de bleu mais ensuite lorsque je selectionne une autre ligne celle selectionné au préalable est réécrite en bleu en non en rouge !

    voila ce que j'utilise pour pouvoir selectionné les ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListView_SetExtendedListViewStyleEx(hListView,0,LVS_EX_GRIDLINES | LVS_EX_UNDERLINECOLD | LVS_EX_FULLROWSELECT
    et voici ce que je fais avant d'y inserer un élement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (condition)
      Ccolor = RGB(255,6,6);//rouge			
    else
      Ccolor = RGB(49,4,227);//bleu
    ListView_SetTextColor(hListView,Ccolor);
    ListView_InsertItem(hListView,(LPARAM)&LvItem);
    Donc mon problème c'est que lorsque je selectionne et déselectionne une ligne rouge, elle perd sa couleur et devient bleu !

    Merci pour vos infos.
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Quelle est la condition, et où est placé ton code ? Tu as tracé au debugger pour voir ce qui était exécuté ?

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    je pense que la "condition" n'apporte rien mais bon admettons que la condition soit que si la taille de la chaine que je vais afficher soit paire
    Quand au code il est placé dans une fonction (2eme ha ha)
    Bon arretons les plaisanteries...
    Oui j'ai debugé et je ne vois pas de méthodes qui "repaint" m'a fenetre et surtout ma listview !!!

    Voila !

    PS:Je ne bosse pas avec les mfc (je préfère préciser)
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Je ne crois pas que ton code reflète ce que tu veux faire. Tu veux gérer des couleurs individuelles de tes lignes, mais ListView_SetTextColor définit une couleur globale, pour toutes les lignes...
    Pour faire ce que tu veux, c'est un peu plus complexe.
    http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/listview_overview.asp
    voir List-View Colors.
    Faut gérer la notification NM_CUSTOMDRAW qui te donne en paramètre les infos sur l'item qui va être dessiné. Tu n'as plus qu'à régler la couleur qui faut pour cet item.
    Un exemple basé sur les MFC, mais assez proche de Win32 malgré tout:
    http://www.codeproject.com/listctrl/lvcustomdraw.asp

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    non c'est bon ca marche très bien avec ListView_SetTextColor,
    mon problème c'etait juste que je ne gérais pas une notification, je ne me souviens plus laquel
    Mais merci quand même !
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Pense à cliquer sur résolu alors (la notification, c'est pas NM_CUSTOMDRAW des fois ?)

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    oups pour le résolu !

    et non c'est beaucoup plus simple que ce dont tu parles en faite j'utilise NM_CLICK et je fais ma mise à jour.
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Je suis un peu sceptique (notament en cas de redessin du au passage d'une autre fenêtre par dessus), mais si ça marche, c'est l'essentiel.

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2003
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 222
    Points : 91
    Points
    91
    Par défaut
    le redessin marche avec WM_PAINT
    Voilà !
    L'echec ne doit pas être considéré comme une perte de temps mais comme l'apprentissage.

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

Discussions similaires

  1. [A-00] Rafraichir une fenetre A
    Par yepAccess dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/10/2008, 17h14
  2. Rafraichir une fenetre malgré un CPU à 100 % ?
    Par _-=Chri=-_ dans le forum Débuter
    Réponses: 5
    Dernier message: 08/08/2007, 15h48
  3. Rafraichir une fenetre parent par la fermeture d'un popup
    Par loleske dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/05/2006, 08h14
  4. Redessiner (rafraichir) une fenetre
    Par @drien dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 17/01/2006, 21h59
  5. [API] Rafraichir une fenetre ?
    Par laurent_h dans le forum Windows
    Réponses: 2
    Dernier message: 17/04/2004, 23h26

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