Bonjour,

J'aimerai afficher une image JPEG dans un contrôle ActiveX MFC.
Pour ce faire, j'ai une méthode qui me renvoie l'image dans un tableau de byte (image provenant d'un Stream).

J'aimerai donc savoir si il existe un moyen d'afficher ce tableau de byte grâce la méthode OnDraw de mon contrôle.


Voici le code généré de base par VC++

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void CActiveXtestCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	if (!pdc)
		return;
 
	// TODO: Replace the following code with your own drawing code.
	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
	pdc->Ellipse(rcBounds);
}
Lorsque je réalise cela avec une WinForm, c'est très simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
System::Void Form1::Form1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) 
{
	try
	{
		Image^ newImage = Image::FromStream(MyImage->getStream());
		e->Graphics->DrawImage( newImage,0, 0, 640, 480);
	}
	catch (Exception^ e) { Console::WriteLine(e->Message->ToString()); }
}
Mais comment réaliser la même chose avec mon contrôle?

Merci d'avance !