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 :

redessiner une SDI


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut redessiner une SDI
    bonsoir
    j'utilise une SDI. en fait je dessine une grille dans le ClientRect de la CView. mon probleme est que j'utilise aussi un timer, à chaque iteration du timer quelques cellules de la grille changent de couleur et je redessine toute la grille. donc, j'obtient quelques parasites on redessinant avec repetitions. est ce normal ? sinon comment faire pour rendre la séquence de dessin fluide?

    merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Je dirais ne faire le dessin qu'en un seul endroit (typiquement la fonction OnPaint() ou OnDraw()) et quand tu as besoin qu'elle soit redessiner, faire un Invalidate() sur la bonne CWnd (au pire, tu utilises la CFrameWnd) pour demander que OnDraw() soit appelée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut
    bonjour

    merci Médinoc.
    mais je fais bien ce que vous dites. non, mais dessins sont correctes et justes, sauf que dans la boucle (je redissine chaque 100 ms) j'ai comme des flashs ou des trucs blancs qui apparaissent lors du redessinement. mais, c'est bon pour le contenu des dessins c'est juste ces trucs qui coupent la fluidité entre le passage d'un etat à l'autre du dessin.

    ces trucs sont normaux ou bien c'est moi qui fais des betises?

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut
    bonjour

    mon prbleme je crois est que quand je redessine la grille je redessine chaque grille à part dans une boucle. est ce que je peux faire ça mais n'afficher le dessin qu'apres la fin de toute les cellules?

  5. #5
    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,
    le mieux serait de travailler avec un bitmap en mémoire ,
    tu peux t'inspirer de ce post de la faq:
    http://cpp.developpez.com/faq/vc/?pa...TreeCtrlCustom

    le principe:
    le dessin se fait dans un bitmap en mémoire .
    le bitmap est projeté sur la form .
    en cas de repaint on envoie directement le bitmap on ne redessine pas le dessin..
    il serait judicieux de n'envoyer à l'écran que la partie du bitmap qui change .

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Par défaut
    bonsoir

    merci farscape, je me suis inspirer de ton exemple et ça marche. mais, ça bouffe tros de memoire. j'ai fini mon projet mais je me demandais comment faire pour dessiner proprement, existe t il des bibliotheques pour (avec c++ biensur). quand je dis proprement je fais allusion au jeux video.

    si vous avez des liens utiles mais avec c++ je suis preneur.

    merci d'avance

Discussions similaires

  1. redessiner une vue !
    Par stachus dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 28/03/2008, 11h20
  2. Redessiner une page?
    Par kiev333 dans le forum MFC
    Réponses: 1
    Dernier message: 23/01/2007, 16h59
  3. Réponses: 2
    Dernier message: 27/04/2005, 08h56
  4. Redessiner une grille d'un TStringGrid
    Par delphi5user dans le forum Composants VCL
    Réponses: 9
    Dernier message: 12/10/2004, 15h04
  5. redessiner une Image1 avant de poursuivre
    Par jakouz dans le forum Composants VCL
    Réponses: 4
    Dernier message: 18/11/2003, 16h57

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