2016-03-18 14 views
1

So habe ich nächstes Problem: Ich habe zwei Monitore und machen Video-Übersetzung von Web-Kamera auf einer von ihnen (sekundär). Ich mache es im Vollbildmodus mit put_FullScreenMode().MFC IVideoWindow put_FullScreenMode funktioniert nicht korrekt

Es funktioniert gut, aber wenn ich eine Maustaste auf Bereich des primären Monitors, Fenster mit Video-Übersetzung Wrap in nur Fenster-Modus klicken. Wie kann ich den Vollbildmodus beim Arbeiten mit dem primären Monitor speichern?

Als erstes verschiebe ich mein Video nach links (auf sekundärem Monito vom primären) und benutze den Vollbildmodus.

if(monitors.GetCount() > 1) 
     gx.pVW->put_Left(primaryRect.right); 

     gx.pVW->put_FullScreenMode(OATRUE); 
     gx.pVW->put_Visible(OATRUE); 

Vielen Dank für Ihre Zeit.

Antwort

0

[Much] ältere Anwendungen nutzten FullScreenMode aus, da API einen speziellen "Vollbild-Renderer" -Filter lieferte, der effizient für die Vollbilddarstellung sorgte. Seitdem haben Videoadapter ihren Weg in das Stretching des vorgestellten Videos gefunden und der Vollbildmodus wird überflüssig. Der Fenstermodus des Video-Renderers (den Sie verwenden) war auch kein empfohlener Modus im Vergleich zu fensterlos.

Sie würden besser mit Renderer im fensterlosen Modus direkt in Ihrer Benutzeroberfläche, in Ihrem Fenster, Formular oder Dialog. Mit dem grenzenlosen Fenster-Hosting-Video-Renderer können Sie ganz einfach den Vollbildmodus imitieren, ohne den Anzeigemodus tatsächlich zu ändern. Ein solches Fenster bleibt ein normales Fenster und muss nicht mit einer anderen UI-Aktivität, z. so dass das auf einem anderen Monitor passiert.

VMR filtert sich die beiden Wege gehen Vollbild in ihre Filter Config Immobilienseite zeigen:

enter image description here

Set Vollbild macht es so, wie Sie tun und aus dem genannten Problem leiden. Die andere Methode arbeitet im Vollbildmodus mit einem randlosen Fenster, das im Umfang eines Monitors gestreckt ist.

Siehe auch Siehe auch: