Bonjour,
Je souhaite afficher des graphiques ds une boite de dialogue. Pour cela, j'utilise une libraire déja ecrite que j'ai trouvé sur le web cependant je n'arrive pas a reafficher le graphique avec la methode onpaint.
Apparemment le graphique s'affiche tres rapidement et il est ensuite éffacé ou remplacé par un écran vide.
Je ne vois pas d'ou vient le problème, voici ma méthode OnPaint():
void CDlgAreva::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
// CDialog::OnPaint();
if(myBar != NULL)
{
CWnd* graphFrame = (CWnd*)GetDlgItem(IDC_GRAPH);
CDC* pDC = graphFrame->GetDC();
myBar->Draw(pDC);
ReleaseDC(pDC);
}
}
}
myBar est le nom de mon graphique et sa methode Draw prend en argument un CDC*.
IDC_GRAPH est une frame ds ma bdd principale que j'ai mis en Rectangle pour afficher le graphique a l'intérieur.
Merci d'avance pour votre aide.