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