MFC - ONSIZE

shorzy Messages postés 94 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 1 juin 2013 - 9 août 2009 à 21:20
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 - 11 août 2009 à 11:38
Salut.
J'ai un problème lorsque je j'agrandit la fenetre (Double Clik sur la Barre de Titre).

Je lance alors une opération de Dessin dans la zone client, mais ce dessin est couvert lors de l'appel OnDraw (Je pense)

Ce Dessin n'est pas recouvert si dans la fct OnSize() je lance AfxMessageBox() (avant l'opération de Dessin )

De plus je me suis apercu que la fct OnSize est apelé 2xfois de Suite quand on agrandit la fenêtre par Double Clik sur la Barre de Titre ???
Pourquoi ???



CChildFrame::OnSize
{
AfxMessageBox // Si je retire cet appel le Dessin n'a pas Lieu ???
Dessin();
}

xxView::OnDraw
{
Dessin()
}

Comment puis je faire dans ce cas pour Dessiner (dans cet emplacement) sans être recouvert. Et sans AfxMessageBox...

3 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
10 août 2009 à 10:36
Bonjour,

Il ne faut pas appeller ta fonction de dessin dans Onsize() puisque ta fenêtre recevra un OnDraw par la suite. En général on se sert de OnSize pour mémoriser la taille de la fenêtre si nécessaire.
0
shorzy Messages postés 94 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 1 juin 2013
10 août 2009 à 22:35
Mais c'est mon Pote !!
Salut Ed.

Je sais qu'on ne devrait pas faire ça, mais j'aimerais dessiner en(R2_NOTXORPEN)
Il s'agit juste d'un Trait .

Mais le resultat est aléatoire :
Dès fois ça Marche,
Dès fois ça Marche pô


Cela Vient de fait que WM_SIZE est appelé :
1 Fois -> MAXIMISE
2 Fois -> MINIMISE
(Ou l'inverse)

J'ai trouvé une Bidouille, mais ça fait usine à Gaz

Au fait ED.
Comment Enregistrer
le MemDC (Compatibe pdC)
et le MemBmp (Compatibe BitMap)
Pour pas que ça Plante ....
Si je le fais dans OnInitialUpdate (Plantage)
Je Voudrais enregistrer cette Image (Dbl Buff)
pour pouvoir dessiner dedant depuis n'importe où.

Merci.
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
11 août 2009 à 11:38
Bonjour,

C'est forcément aléatoire car des WM_SIZE tu vas en recevoir des tas dès que ta fenêtre change de taille.

Il faut que tu trouves un moyen de dessiner uniquement dans OnPaint().

Normalement tu dois pouvoir enregistrer le MemDC et le bitmap n'importe où, as-tu analysé la raison du plantage ?
0
Rejoignez-nous