Bonjour à tous.
Je butte actuellement sur un problème. Je souhaite en fait ajouter une fenetre transparente avec CreateWindowEx( ) pour créer une OSD (On Screen Display) par dessus une vidéo.
Bien que je fasse bien attention de passer le bon handle de fenetre dans chacune de mes fonctions , je rencontre un problème lorsque j'initialise mes fenetres avec le code ci-dessous.
En effet, lorsque j'arrete et je remet en lecture la vidéo, la vidéo est affiché dans la fenetre osd et non plus hWnd.
J'ai remarqué que cela se produisait seulement lorsque la fenetre osd était affiché en meme temps que hWnd.
Pourriez vous me guider sur la méthode d'ajout d'une seconde fenetre dans mon programme en win32?
Je vous en remercie d'avance.
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
hInst = hInstance; // Stocke le handle d'instance dans la variable globale
hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP,
CW_USEDEFAULT, 0, largeur, hauteur, NULL, NULL, hInstance, NULL);
osd = CreateWindowEx(
WS_EX_TOPMOST | WS_EX_LAYERED
| WS_EX_TRANSPARENT,
szWindowClass,TEXT("On Screen Display IAM"),
WS_POPUP,0,0,largeur/2,hauteur/2,hWnd,0,hInstance,0);
// Choisir la couleur de fond (blanc) comme couleur transparente:
SetLayeredWindowAttributes(osd, RGB(255,255,255), 0, LWA_COLORKEY);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
Partager