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 :

Pb de rafraîchissement boîte de dialogue


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 78
    Par défaut Pb de rafraîchissement boîte de dialogue
    Bonsoir,

    Je dispose d'une boîte de dialogue construite à partir de CDialog.

    La classe associée à cette boîte de dialogue contient une méthode OnPaint chargée d'afficher un rectangle de couleur.

    Un clic sur le rectangle permet d'en changer la couleur à l'aide de CColorDialog.

    Cependant, visuellement il n'y a pas de changement de couleur du rectangle, sauf lorsque la boîte de dialogue est reconverte par une autre fenêtre ou bien déplacée temporairement hors de l'écran, ce qui ressemble fort à un pb de raffraîchissement...

    PS: j'ai essayé SendMessage(WM_PAINT,0,0); après le choix de la couleur mais cela ne change rien.

  2. #2
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    salut,

    voir CWnd::InvalidateRect() ou CWnd::Invalidate(), pour invalider une zone
    éventuellement suivi par un CWnd::UpdateWindow() pour forcer une mise à jour immédiate, mais je ne pense pas nécessaire pour ton cas


    Le InvalidateRect() ne fait que marquer la région comme invalide. Le dessin effectif (WM_PAINT) ne se fera que quand la file à message est vide.
    Le UpdateWindow() force un WM_PAINT


    pour un rectangle de couleur, tu aurais pu passer par un controle 'Static'
    c'est dangereux ta façon de faire ...

    @+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 78
    Par défaut
    Merci stephdim,

    Le InvalidateRect qui précède UpdateWindow est la solution.

    Mais en quoi ma façon de faire peut être dangeureuse?

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

Discussions similaires

  1. [MFC] afficher une boîte de dialogue
    Par bigboomshakala dans le forum MFC
    Réponses: 13
    Dernier message: 10/05/2004, 14h22
  2. [Kylix] Imprimer le contenu d'une boîte de dialogue
    Par cmp-france dans le forum EDI
    Réponses: 13
    Dernier message: 18/10/2003, 20h31
  3. Réponses: 3
    Dernier message: 29/08/2003, 10h57
  4. [MFC] Boîte de dialogue chronométrée
    Par mdriesbach dans le forum MFC
    Réponses: 5
    Dernier message: 18/02/2003, 12h40
  5. Dll et boîte de dialogue MFC
    Par paulj dans le forum MFC
    Réponses: 3
    Dernier message: 19/12/2002, 09h59

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