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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Stream^ getStream();
Voici le code généré de base par VC++
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 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); }
Mais comment réaliser la même chose avec mon contrôle?
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()); } }
Merci d'avance !
Partager