[GDI] Générer un bitmap dynamiquement
Bonjour,
j'arrive à afficher une image générée dynamiquement dans mon programme via un setPixelV sur chaque pixel de l'image, mais cette procédure est trop longue, et se révèle très désagréable au moindre déplacement / redimensionnement de la fenêtre.
Je souhaiterais donc que mon image puisse s'afficher de la même façon qu'une ressource bitmap chargée par LoadImage. J'ai essayé ceci mais ma fenêtre reste désespérément noire...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
case WM_PAINT:
{
HDC hdc, hdcMemory;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);
hdcMemory = CreateCompatibleDC(NULL);
BITMAP bm;
//hbitmap = (HBITMAP)LoadImage(NULL, "image.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
hbitmap = CreateBitmap(1280, 1024, 3, 24, g_fond);
SelectObject(hdcMemory, hbitmap);
GetObject(hbitmap, sizeof(bm), &bm);
BitBlt(hdc, 20, 20, bm.bmWidth, bm.bmHeight, hdcMemory, 0, 0, SRCCOPY);
DeleteDC(hdcMemory);
EndPaint(hWnd, &ps);
return 0;
} |
où g_fond a été déclaré comme suit, et dont les valeurs ont été initialisées à la création de la fenêtre :
Code:
static COLORREF g_fond[1280][1024];
La fonction CreateBitmap ne doit-elle pas s'employer pas ainsi ?
Merci.