Bonjour à tous,
je souhaite créer une bitmap voila en abrégé les structures de données que j'utilise :
Couleur utilisé :
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;
}
Buffer :
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;
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
// typedef :
typedef CColor3<unsigned char> TPixel_uc;
typedef CBuffer<TPixel>	TPixelBuffer;
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
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;
}
Mais la fonction CreateBitmap ne fonctionne pas , ç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