Winapi MFC IVideoWindow put_FullScreen模式工作不正常

Winapi MFC IVideoWindow put_FullScreen模式工作不正常,winapi,video,mfc,fullscreen,directshow,Winapi,Video,Mfc,Fullscreen,Directshow,所以我有下一个问题: 我有两个显示器,在其中一个显示器上做网络摄像机的视频翻译(辅助)。我在全屏模式下使用 put\u FullScreenMode() 它工作得很好,但当我在主监视器区域上单击任何鼠标按钮时,带有视频翻译的窗口会自动换行为“窗口”模式。 如何使用主显示器保存全屏模式 首先,我将视频移到左侧(从主监视器移到辅助监视器上),并使用全屏模式 if(monitors.GetCount() > 1) gx.pVW->put_Left(primaryRe

所以我有下一个问题: 我有两个显示器,在其中一个显示器上做网络摄像机的视频翻译(辅助)。我在全屏模式下使用
put\u FullScreenMode()

它工作得很好,但当我在主监视器区域上单击任何鼠标按钮时,带有视频翻译的窗口会自动换行为“窗口”模式。 如何使用主显示器保存全屏模式

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

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

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

谢谢您的时间。

[更多]较旧的应用程序利用了
全屏模式
,因为API提供了一个特定的“全屏渲染器”过滤器,可以有效地处理全屏演示。从那时起,视频适配器开始扩展显示的视频,全屏模式变得不必要。与无窗口模式相比,视频渲染器的窗口模式(您正在使用)也不再是推荐的模式

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

VMR筛选器本身在其筛选器配置属性页中演示了全屏显示的两种方式:

Set Fullscreen会按照您的方式进行操作,并且会遇到上述问题。另一种方法是通过将无边界窗口拉伸到监视器的范围来实现全屏模式

另见相关讨论:


[更]旧的应用程序利用了
全屏模式
,因为API提供了一个特定的“全屏渲染器”过滤器,可以有效地处理全屏显示。从那时起,视频适配器开始扩展显示的视频,全屏模式变得不必要。与无窗口模式相比,视频渲染器的窗口模式(您正在使用)也不再是推荐的模式

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

VMR筛选器本身在其筛选器配置属性页中演示了全屏显示的两种方式:

Set Fullscreen会按照您的方式进行操作,并且会遇到上述问题。另一种方法是通过将无边界窗口拉伸到监视器的范围来实现全屏模式

另见相关讨论: