Bonjour à tous,
je souhaite créer une bitmap voila en abrégé les structures de données que j'utilise :
Couleur utilisé :Buffer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template <typename T> class CColor3 { public: //..... operator T * const (); // return &r; T r,g,b; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template <class T> class CBuffer { public: //..... T * const GetArray(); //return &m_buffer[0]; std::vector<T> m_Buffer; };Cela étant fait, voila le code que j'utilise pour tenter tant bien que mal (pour pas dire très mal) de créer ma bitmap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // typedef : typedef CColor3<unsigned char> TPixel_uc; typedef CBuffer<TPixel> TPixelBuffer;Mais la fonction CreateBitmap ne fonctionne pas
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
18
19
20
21
22
23
24
25
26 case WM_PAINT: { BITMAP bm; PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); // Bitmap handle : HBITMAP HBitmap = CreateBitmap( PixelBuffer->SizeW(), PixelBuffer->SizeH(), 1, 8, (float *)(PixelBuffer->GetArray()) ); //HBITMAP HBitmap = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1)); // La bitmap est bien affichée si je remplace la précédente ligne par celle là donc je suppose qu'il n'y a pas d'erreur par la suite // Virtual context handle : HDC hdcMem = CreateCompatibleDC(NULL); // Load bitmap : SelectObject(hdcMem, HBitmap); GetObject(HBitmap, sizeof(bm), &bm); // Transfer : BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY); DeleteDC(hdcMem); EndPaint(hWnd, &ps); break; }, ça fait plusieurs heures maintenant que je cherche dans la doc et diverses articles mais je n'ai encore rien trouvé alors si vous voyez comment régler mon problème ( ou même un début de piste
) je suis preneur,
merci d'avance et bonne fin de journée
Partager