Dessiner ds 1 bdd [Résolu]

Signaler
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008
-
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008
-
Bonjour,

Je sais dessiner dans une boite de dialogue mais j'aimerais bien mettre tout ce code dans une méthode Afficher() dans un autre fichier .cpp afin d'alléger la méthode OnPaint() de ma bdd.
Le problème est : où appeler cette méthode Afficher() (dans le paint, le showWindow ou EraseBackground() ? ) et quels paramètres lui passer (CDC *pdc, CPaintDC, ... ??)

Merci d'avance
A+

8 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Quelle erreur as-tu?
Essaie ca:
void MaClasse::Affiche(CPaintDC& dc)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
On dessine quand on recoit WM_PAINT, donc en MFC ca doit être OnPaint. Le paramètre CPaintDC est obtenu en paramètre, tu ne t'en occupes pas
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

ok, je veux bien appeler ma méthode affiche() ds la méthode OnPaint()
mais aprés comment je fais pour dessiner dans affiche() ? je n'ai pas accés à CPaintDC dc(this)(étant donné que affiche() se trouve dans un autre fichier).

merci !
Messages postés
11
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
26 décembre 2005

slt,

je dessine aussi dans une boite de dialogue avec pDC et j'aimerais savoir si on peut changer la couleur et l'épaisseur du trait quand on utilise pDC->LineTo()
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Le CPaintDC tu le passes en paramètre, ca semble évident

alf03> LineTo utilise le Pen courant. Pour changer la couleur/épaisseur du trait, tu choisis un autre pen (SelectObject)
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

merci, j'avais bien compris qui fallait le passer en paramètre, seulement, le compilateur m'indique une erreur quand je procède de la sorte :

void CDialBdd1::OnPaint() void MaClasse::Affiche(CPaintDC dc)
{ CPaintDC dc(this); {
m.Affiche(dc); dc.LineTo(210,615);

merci d'avance
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

petit souci de présentation; plutot comme ca :

void CDialBdd1::OnPaint()
{
CPaintDC dc(this);
m.Affiche(dc);
}

--------------------

void MaClasse::Affiche(CPaintDC dc)
{
dc.LineTo(210,615);
Messages postés
34
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
6 juillet 2008

oui, ca marche beaucoup mieux !
je te remercie !!