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...
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
La fonction CreateBitmap ne doit-elle pas s'employer pas ainsi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part static COLORREF g_fond[1280][1024];
Merci.
Partager