// APPEL
int width = GetDeviceCaps(hdc, HORZRES);
int height = GetDeviceCaps(hdc, VERTRES);
HBITMAP hbmp = CreateCompatibleBitmap(hdc, width, height);
HBITMAP oldBmp = (HBITMAP)SelectObject(hdc, hbmp);
LPVOID lpDataBmp = GetBmpData(hdc, hbmp);
if(lpDataBmp != NULL)
{
SIZE sizeBmp = GetBmpSize(hbmp);
for (int y = sizeBmp.cy; y >=0 ; y--) // je commence par la dernière ligne
{
for(int x = 0; x < sizeBmp.cx; x++)
{
LPDWORD lpByte = (LPDWORD)lpDataBmp + sizeBmp.cx * y + x;
DWORD p = *lpByte; // je regarde la valeur de la couleur, qui vaut toujours 0
}
}
}
VirtualFree(lpDataBmp, 0, MEM_RELEASE);
SelectObject(hdc, oldBmp);
DeleteObject(hbmp);
Et si j'ai bien compris, SelectObjet me remplis le memBM, (et en couleur, dixit msdn), donc pourquoi j'ai que du noir ? pourquoi que des 0 à l'adresse pointée par lpDataBmp ? Ou est l'erreur ? (je précise que mon DC est DT_RASPRINTER)
Vous n’avez pas trouvé la réponse que vous recherchez ?