MFC IVideoWindow put_FullScreenMode工作不正常

时间:2016-03-18 18:33:09

标签: winapi video mfc fullscreen directshow

所以我有下一个问题: 我有两个显示器,并在其中一个(辅助)上从网络摄像头进行视频翻译。我是在全屏模式下使用 put_FullScreenMode()

它工作正常但是当我点击主监视器区域上的任何鼠标按钮时,带有视频转换的窗口会进入窗口模式。 如何使用主监视器保存全屏模式?

首先,我将视频移到左侧(从主要的辅助监控),并使用全屏模式。

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

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

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

[很多]较旧的应用程序利用了FullScreenMode,因为API提供了一个特定的“全屏渲染器”过滤器,可有效地处理全屏显示。从那以后,视频适配器进入拉伸呈现的视频和全屏模式变得不必要。与无窗口相比,窗口模式的视频渲染器(您正在使用)也不是推荐模式。

最好在UI,窗口,窗体或对话框中以无窗口模式使用渲染器。使用无边框窗口托管视频渲染器,您可以轻松模仿全屏模式,而无需实际更改显示模式。这样的窗口保持正常窗口,并且不需要从具有另一UI活动的全屏返回,例如,这种情况发生在另一台监视器上。

VMR过滤器本身演示了在其过滤器配置属性页面中实现全屏的两种方式:

enter image description here

设置全屏按照您的方式执行操作并遇到上述问题。另一种方法使用拉伸到监视器范围的无边框窗口进行全屏模式。

另见相关讨论: