Bon, voila, j'utilise 2 images dans ma MFC (SDI) que j'affiche en 'fond' de mon document...
Pourquoi 2 images ? Parce que j'ai mon image source (celle d'origine) et puis celle que j'utilise 'courrament' (en fond quoi.... je rajoute des trucs par dessus...)
Donc jusque la, tout va bien ... le problème c'est que je voudrais 'optimiser' un p'tit peu mon code ... a savoir qu'a l'initialisation de mes images .... je réalise 2 fois la meme opération ... a savoir :
[Lecture de mon image dans img]
// Pointeurs sur mon image 'courante'
CBitmap* pbmOffScreen = new CBitmap();
CDC* pdcOffScreen = new CDC();
// Pointeurs sur l'image 'source'
CBitmap* pbmSource = new CBitmap();
CDC* pdcSource = new CDC();
Pixel pix;
// Initialisation des pointeurs d'image
pbmOffScreen->DeleteObject();
pbmOffScreen->CreateCompatibleBitmap(pDC, img->w, img->h);
// Note : la largeur/hauteur de l'image sont accessible via img->w et img->h (des fois que vous auriez pas compris :p)
pdcOffScreen->DeleteDC();
pdcOffScreen->CreateCompatibleDC(pDC);
pdcOffScreen->SelectObject(*pbmOffScreen);
// Deja la, on fait cette partie en 'double'....
pdcSource->DeleteDC();
pdcSource->CreateCompatibleDC(pDC);
pdcSource->SelectObject(*pbmSource);
pbmSource->DeleteObject();
pbmSource->CreateCompatibleBitmap(pDC, img->w, img->h);
for(int i=0; iw; i++)
{
for(int j=0; jh; j++)
{
pix = img->pixels[i + j*img->w];
pdcOffScreen->SetPixel(CPoint(i,j), RGB(pix.R,pix.G,pix.B));
// On fait ici aussi ca en 'double' ....
pdcSource->SetPixel(CPoint(i,j), RGB(pix.R,pix.G,pix.B));
}
}
Donc voila.... je me demandais s'il n'existait pas un constructeur par copie de CDC (j'ai regardé ... il n'y a pas l'air d'y en avoir..) ou un truc qui permettrait de 'dupliquer rapidement' un CDC dans un autre... sans avoir a se l'initialiser en meme tps que le premier....
(en espérant avoir été clair .... ^^;;; )