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 41 42 43 44 45 46 47 48 49 50 51 52 53
| void MaClasse::OnPaint()
{
CDialog::OnPaint();
UINT IDB_HPSCR1 = 400; // Mon image à afficher
UINT IDC_BP_AREA = 500; // Mon IDC qui contient la future image
for (i=0;i<5;i++) // J'appelle pour mes 5 images & DC différents, ma fonction qui affiche les images (Dessiner)
{
IDB_HPSCR1 = IDB_HPSCR1 +1 ;
IDC_BP_AREA = IDC_BP_AREA +1;
Dessiner(IDB_HPSCR1, IDC_BP_AREA);
}
}
void MaClasse::Dessiner(UINT IDB_HPSCR1, UINT IDC_BP_AREA)
{
CDC *pDC;
BITMAP m_bmp1;
CBitmap Image1;
CDC memDC1;
pDC = GetDlgItem(IDC_BP_AREA)->GetDC();
Image1.LoadBitmap(IDB_HPSCR1);
Image1.GetBitmap(&m_bmp1);
memDC1.CreateCompatibleDC(pDC);
memDC1.SelectObject(Image1);
pDC->BitBlt(0,0,m_bmp1.bmWidth,m_bmp1.bmHeight,&memDC1,0,0,SRCCOPY);
}
BOOL MaClasse::OnEraseBkgnd(CDC* pDC)
{
CDialog::OnEraseBkgnd(pDC);
// Fixe une brosse avec la couleur de fond choisie
CBrush BkClrBrush(RGB(255, 255, 255));
// Sauvegarde lancienne brosse.
CBrush* pOldBrush = pDC->SelectObject(&BkClrBrush);
CRect rect;
pDC->GetClipBox(&rect); // récupère la zone a effacer.
pDC->PatBlt(rect.left, rect.top, rect.Width(),
rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);// restitue lancienne brosse.
return TRUE;
} |
Partager