1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| void CBillardView::OnDraw(CDC* pDC)
{
[...]
CRect rcClient;
GetClientRect(rcClient);
// création d'un contexte d'affichage en mémoire et d'un bitmap associé
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap memBmp;
memBmp.CreateCompatibleBitmap(pDC, rcClient.Width(), rcClient.Height());
CBitmap* pOldBmp = memDC.SelectObject(&memBmp);
// effacement du fond
CBrush backBrush;
backBrush.CreateSolidBrush(RGB(255, 255, 255));
memDC.FillRect(rcClient, &backBrush);
backBrush.DeleteObject();
// utilisation de memDC pour les dessins
CRect rect(X-LON1/2, Y+LAR1/2, X+LON1/2, Y-LAR1/2);
CBrush brush;
brush1.CreateSolidBrush(COULEUR1);
memDC.SelectObject(&brush);
memDC.Rectangle(rect);
// recopie du contexte en mémoire à l'écran
pDC->BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDC, 0, 0, SRCCOPY);
// sélection anciens objets, destruction de ceux créés
memDC.SelectObject(pOldBmp);
memDC.DeleteDC();
memBmp.DeleteObject();
AffichageBille(pDoc->m_partie->TabBille[0],pDC);
// TODO : ajoutez ici le code de dessin pour les données natives
} |
Partager