Dans la faq je tourne dessus depuis 2jours (une vraie mine d'or d'ailleurs ), mais j'avais pas fait gaffe au bouton "tutoriels" du forum, où j'ai pus trouver pas mal d'info merci
Donc la raison pour laquelle je ne voyais pas la fonction OnDraw(CDC * pDc), c'est tous simplement parceque j'étais en mode "Dialogue Based", dans tous les cas maintenant j'ai la fonction OnDraw() -- qui n'est rien d'autre qu'une fonction appelé par la méthode OnPaint(), soit dit en passant -- et qui par conséquent n'a absolument rien corrigé à mon pbm premier, si ce n'est que j'ai découvert quelques points suplémentaire du vc++
Par contre je me suis retrouver face à ces deux cas de figure :
Cas 1 :
J'execute mon code pas à pas (OnDraw()), et je vois que je dessine sur la fenetre correctement, puis plus loin dans le code (en mode dessassambleur), il ré-affiche toutes l'ihm, et par conséquent efface mes zoulies dessins !
Cas 2 :
Cette fois ci j'execute mon code normalement, mais j'ai laissé une ligne de code qui fait afficher une boite d'erreur : "Debug Assertion Failed"
Machinalement, blasé, je clic sur "Ignorer", et là Ô miracle, la suite du code s'éxécute sans pbm, et je vois mes dessins s'afficher (car avant de cliquer sur ignorer, je pouvais voir toutes mon ihm)
Du coup, y'a t-il moyen pour que la fonction OnDraw soit appelé après le repaint de l'ihm ? On quelque chose du genre !? (Je hais vraiment vc++, on est maître de rien quand on connaîs pas la logique )
Pour la ligne de code qui plante je vais chercher à comprendre, mais y'as pas vraiment de raison, elle fonctionnait tres bien avant : (Je donne ça seulement à titre indicatif pour bien montrer que ca ne gene pas mon affichage)
1 2 3 4 5 6
|
ligne 1 : bmp.LoadBitmap(IDB_MOULIN_A_TAN) ;
ligne 2 : bmp.GetObject(sizeof(BITMAP), &bits) ;
ligne 3 : bmp2.LoadBitmap(IDB_MOVEME) ;
ligne 4 : bmp2.GetObject(sizeof(BITMAP), &bits2) ; |
ça bug sur la ligne 2, et IDB_MOULIN_A_TAN existe bien dans les ressources, et dans le cas actuel je n'ai pas besoin de bits.
[edit]
Il y à peut-être un point sur lequels ont s'est mal compris, je souhaite dessiner dans un champ CPicture, et non sur le fon de ma fenêtre donc je n'utilise pas le (CDC * pDC) du onDraw(), mais je recréer un DC via le handle de mon CPicture. A priori le pbm vient de là, car quand je dessine directement via le pDC (donc sur le fond de la fênetre) je ne vois aucun pbm de raffraichisement !
Du coup si personne n'a de solution pour mon pbm via le CPicture, je vias me rabattre sur le fond de la fenetre
[/edit]
Cordialement
Division-par-zero
Partager