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 :

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
);
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
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()));
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.

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.