MFC - ONSIZE

Signaler
Messages postés
94
Date d'inscription
jeudi 23 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2013
-
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
-
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

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
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.
Messages postés
94
Date d'inscription
jeudi 23 novembre 2000
Statut
Membre
Dernière intervention
1 juin 2013

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.
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
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 ?