bonjour
je développe sous visual c++ et les MFC.
je créé une classe ds laquelle j'utilise la fonction suivante : elle affiche une valeur tapé au clavier ds un rectangle.
cette fonction fait appel à une autre classe qui dessine mon texte et mon rectangle.
void MaClasse::Dessiner(CDC& dcMem, CPen* ppinceau[7], CBrush* pbrosse[6], CString Nom)
{
int ct[3];
CString val;
if(Type==4)
{
val.Format("%d °",valeur*signe);
}
else
{
val.Format("%d m",valeur*signe);
}
ct[0]=255;
ct[1]=255;
ct[2]=000;
rectangle rect1(30,115,150,180,1,0,"",ct);
rect1.Dessiner(dcMem,ppinceau,pbrosse);
ecriture text1(30,125,150,180,0,Nom,ct,2);
text1.Dessiner(dcMem,pbrosse);
ecriture text2(30,150,150,170,0,val,ct,2);
text2.Dessiner(dcMem,pbrosse);
}
void rectangle::Dessiner(CDC& dcMem, CPen* ppinceau[7],CBrush* pbrosse[6])
{
CBrush* pOldBrush;
CPen* pOldPen;
CRect rect(x1,y1+3,x2,y2+3);
pOldBrush=dcMem.SelectObject(pbrosse[couleurFond]);
pOldPen=dcMem.SelectObject(ppinceau[couleurBord]);
dcMem.Rectangle(x1,y1,x2,y2);
LOGBRUSH logbrush;
pbrosse[couleurFond]->GetLogBrush( &logbrush );
dcMem.SetBkColor(logbrush.lbColor);
dcMem.SetTextColor(RGB(couleurText[0],couleurText[1],couleurText[2]));
dcMem.DrawText(texte,texte.GetLength(),&rect,DT_CENTER);
dcMem.SelectObject(pOldBrush);
dcMem.SelectObject(pOldPen);
}
je déclare
Ma Classe touche;
puis j'appelle
touche.Dessiner(dcMem,pinceau,brosse,"TEXTE");
Voilà il n'y pas d'erreur à la compilation mais qd je lance l'exe il plante à cause d'une erreur ds le fichier wingdi.cpp. Apparement l'erreur est lié à ma CBrush. Pourtant qd j'appelle une fonction de ma classe rectangle elle fonctionne parfaitement.
Qqn pourrait il m'aider, je vous remercie.