Bonjour à tous,
Je développe une petite application pour mon entreprise permettant de récupérer un flux vidéo et de l'afficher dans une fenêtre.
Pour cela, je dispose d'un SDK propre à ma boîte. Dans ce sdk, il y a une fonction appelée sncCreateScreen dont voici le prototype :
J'ai donc créer un objet CamViewer qui dérive de wxWindow dont voici le constructeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SNC_ERROR sncCreateScreen( SNC_HANDLE Handle, // handle de la caméra HWND ParentHandleWnd, // handle de la fenêtre parente int X, int Y, int W, int H );
Tout ceci fonctionne parfaitement, la vidéo s'affiche etc... Le problème est lié aux évènements, je ne peux pas récupérer de MouseEvent sur la fenêtre lorsque celle ci joue la vidéo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CamViewer::CamViewer(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) : wxWindow(parent, id, pos, size, style, name) { wxPoint position = this->GetPosition(); wxSize s = this->GetSize(); viewer = new IPCamera::Viewer(pos.x, pos.y, s.GetWidth(), s.GetHeight(), (HWND)(this->GetHandle()));
Je souhaiterais dessiner sur la vidéo des rectangles permettant de définir des zones (pour zoomer etc...) mais impossible de récupérer l'évenement EVT_LEFT_DOWN et donc par conséquent, impossible de dessiner quoi que ce soit.
J'avais penser à superposer un genre de fenêtre transparente au dessus de la vidéo, est-ce faisable ?
J'ai besoins de quelques conseils...
Merci d'avance,
Yann.
Partager