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
| HDC hdcScreen, hdcMem;
HBITMAP hbmScreen;
BITMAPINFO bmi;
void *pBits;
hdcScreen=GetDC(NULL); //récupère le handle de l'écran
hdcMem=CreateCompatibleDC(hdcScreen);
height=GetDeviceCaps(hdcScreen, VERTRES); //obtient le hauteur de l'écran
width=GetDeviceCaps(hdcScreen, HORZRES); //obtient le largeur de l'écran
//en-tête du bitmap
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth=width;
bmi.bmiHeader.biHeight=height;
bmi.bmiHeader.biPlanes=1;
bmi.bmiHeader.biBitCount=24;
bmi.bmiHeader.biCompression=BI_RGB;
bmi.bmiHeader.biSizeImage=0;
bmi.bmiHeader.biXPelsPerMeter=0;
bmi.bmiHeader.biYPelsPerMeter=0;
bmi.bmiHeader.biClrUsed=0;
bmi.bmiHeader.biClrImportant=0;
hbmScreen=CreateDIBSection(0, &bmi, DIB_RGB_COLORS, &pBits, NULL, 0);
SelectObject(hdcMem, hbmScreen);
BitBlt(hdcMem, 0, 0, width, height, hdcScreen, 0, 0, SRCCOPY);
JpegFromDib((LPBYTE)pBits);
DeleteDC(hdcMem);
DeleteObject(hbmScreen); |
Partager