Dessiner un histogramme dans une Boite de dialogue MFC

Signaler
Messages postés
14
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
2 janvier 2011
-
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
-
Bonjour,

je retourne envers vous parce que je suis bloqué dans mon projet.
alors je m'explique:
je travail sur un programme pour traiter des images.
je voulais afficher l’histogramme de mon image dans une boite de dialogue.
dans mon fichierDOC je crée ma bdd: (pour l'instant je veux juste dessiner quelque chose sur la bdd)
void CLIstaseDoc::OnTraitementHistogramme()
{
CDialHistogramme dialhisto;
m_Image.AffichageHistogramme(dialhisto.GetDC());
UpdateAllViews(NULL);
}


la methode AffichageHistogramme:

void CImage::AffichageHistogramme(CDC *pDC)
{
POINT lpPoint[4];
lpPoint[0].x=100;
lpPoint[0].y=10;
lpPoint[1].x=150;
lpPoint[1].y=100;
lpPoint[2].x=50;
lpPoint[2].y=100;
lpPoint[3].x=120;
lpPoint[3].y=10;
CPen crayon(PS_SOLID,4,RGB(0,255,0));
pDC->SelectObject(crayon);
CBrush pinceau(RGB(255,0,0));
pDC->SelectObject(pinceau);
pDC->Polygon(lpPoint,4);
}
 


quand j’exécute rien ne se passe dans ma bdd et je ne comprend pas pourquoi ?
si vous avez des remarque je suis preneur de toute genre.
merci d'avance.

2 réponses

Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
Bonjour,
dans ce projet il ya ce qu'il faut :
http://www.codeproject.com/KB/graphics/cximage.aspx
Il dessine l'histogramme.

louis
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Bonjour,

Il ne suffit pas d'instancier te bdd, il faut aussi l'ouvrir, soit par DoModal soit par OpenWindow selon ce que tu veux faire.

On ne dessine pas dans la bdd directement, le mieux serait d'y placer un contrôle dérivé de CStatic et de mettre ton histogramme dedans.

Tout appel à GetDC doit être suivi d'un appel à ReleaseDC une fois le dessin terminé, faute de quoi ton application finira par planter faute de ressources GDI.