Dessiner ds une boite de Dialog

Signaler
Messages postés
54
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2008
-
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Je voudrais dessiner des figure simples pour le moment ( carre, rond,..) dans une boite de Dialog. Je ne sais pas du tout comment faire. Je programme sous Visual C++ 6 et en MFC.

3 réponses

Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

Si c'est carrement dans le client du dialog, OnPaint peut t'aider: avec les fonctions Rectangle ou Ellipse de la classes CDC (ou plutôt CPaintDC dans ton cas)
Messages postés
54
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2008

Merci j'ai essayer ca mais ca ne marche pas.
void CTestDlg::OnStart()
{
CPaintDC dc(this);

dc.Rectangle(100,100,100,100);

UpdateWindow();


}
OnStart est un bouton de la Dialog. Je ne comprends pas pourquoi ca ne marche pas.
Messages postés
224
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
18 octobre 2010

En effet, c'est sur ca marchera pas. Par contre:

void CTestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting


SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);


// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;


// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);


dc.Rectangle(100,100,200,200);


dc.Ellipse(300,300,150,150);


CDialog::OnPaint();
}
}