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] probleme de rafraichissement d'une fenetre


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Par d�faut [MFC] probleme de rafraichissement d'une fenetre
    salut, je cr�e un application sous visual C++ 6.0 qui me permet d'ouvrir un image, puis ensuite de r�aliserr des traitement sur cette image. par exemple, je cr�e un rectangle de selection sur une zone de mon image, et a l'interieur, je repeint tout les pixel en noir grace a la fonction setPixel. le probleme, c'est que lorsque je met ma fenetre en bouton, et que je la restaure, ma fenetre, est rafraichie et les zones ou j'avais mis les pixel, on repris leur couleur normal.
    En plus, ca me fait la m�me chose, lorsqu'une boite de dialogue ou une info bulle passe sur une zone ou j'ai changer la couleur des pixel.

    est ce que quelqu'un pourrait me dire comment je pourrait evitait le rafraichissement dans ces cas la?

  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,
    c'est parce que ton action de dessin (setpixel) se fait en dehors du systeme de paint windows. (ondraw,onpaint ,ondrawitem etc .. suivant la fenetre)
    Il faut que tu m�morises tes actions setpixels et que tu rejoues la sequence dans le paint .

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Par d�faut
    mais, comment on fait, pour memoriser une sequence et la rejouer?

  4. #4
    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
    et bien tu remplis une surface ?
    il te suffit de definir une structure qui correspond a tes actions et de la m�moriser dans un tableau dynamique:
    exemple:
    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
    31
    32
    33
    34
    35
    36
    37
    class MemoDraw
    {
      MemoDraw(CRect Rect, COLORREF  clr)
      {
         m_Rect=Rect;
         m_clr=clr;
      }
    private:
     CRect        m_Rect;
     COLORREF  m_clr;
    public:
     virtual void Draw(CDC *pdc)
     {
       CBrush Brush(m_clr);
        pDC->FillRect(m_Rect,&Brush);
     }
    };
    class MemoDrawExt : public MemoDraw
    {
           //......
      virtual void Draw(CDC *pdc)
      {
        // customis�e
       }
    
    };
    
    CArray < MemoDraw*,MemoDraw* > arMemoDraw; // le tableau 
    
    arMemoDraw.Add(new MemoDraw(Rect,RGB(0,0,0));
    arMemoDraw.Add(new MemoDrawExt(...)); // exemple bien sur 
    
    //....
    //dans le paint ou ondraw etc..
    for(int i=0;i<arMemoDraw.GetSize( );i++)
      arMemoDraw[i]->Draw(pDC);
    c'est un exemple du principe, � adapter

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 69
    Par d�faut
    ok, merci pour ton aide

  6. #6
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    A d�faut de m�moriser tu redessines � chaque fois dans le code de painture de Windows (ondraw,onpaint ,ondrawitem etc .. suivant la fenetre)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MFC]Probleme avec attributs d'une LOGFONT
    Par Fildz dans le forum MFC
    R�ponses: 3
    Dernier message: 08/01/2006, 17h59
  2. Probleme ajout label dans une fenetre
    Par sorry60 dans le forum GTK+ avec C & C++
    R�ponses: 11
    Dernier message: 05/11/2005, 17h51
  3. [MFC] Probleme d'actualisation d'une listbox
    Par Robleplongeur dans le forum MFC
    R�ponses: 5
    Dernier message: 13/05/2004, 14h15
  4. [MFC ]Probleme de linkage d'une dll
    Par Lysis dans le forum MFC
    R�ponses: 9
    Dernier message: 22/01/2004, 14h51
  5. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    R�ponses: 6
    Dernier message: 09/01/2004, 23h59

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