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
| void CMyProjectView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
//écrire ici les détails d'impression souhaités.
CImage ImgPrint;
int i;
int PrintPosX=0, PrintPosY=0;
m_rcPrintRect = pInfo->m_rectDraw;
int count=0; //compteur d'image avant de passer avant l'image suivante
int nb_images_per_page = 2;
int nb_pages = (int)(m_iPrintTo/nb_images_per_page + 0.5);
pInfo->SetMaxPage(nb_pages);
int test = pInfo->GetMaxPage();
if(m_iPrintFrom >= m_iPrintTo)
return;
for(i=m_iPrintFrom; i<m_iPrintTo+1; i++)
{
CString s = "C:\\Image.bmp"; //après je mettrai des images diférentes à chaque itération
ImgPrint.Load(s);
int width = ImgPrint.GetWidth();
int height = ImgPrint.GetHeight();
float zoom_factor = 1; //pour l'instant
PrintPosY = (int)((i-m_iPrintFrom)*(zoom_factor*height + 10)); //pour mettre l'image suivante en-dessous de la dernière
ImgPrint.StretchBlt(pDC->m_hDC,PrintPosX,PrintPosY, (int)(zoom_factor*width), (int)(zoom_factor*height), 0, 0, width, height, SRCCOPY);
ImgPrint.Destroy();
count++;
if (count==nb_images_per_page)
{
//pInfo->m_nCurPage; //imprimer le numéro de page
count=0;
PrintPosX=PrintPosY=0;
m_iPrintFrom = i+1;
return;
}
}
CView::OnPrint(pDC, pInfo);
} |