C# 副屏或多个显示屏显示应用

1.首先要创建一个窗体应用程序,在在此程序添加一个窗体程序

2.初始化时获取屏幕数量信息:

// 获取所有屏幕信息
Screen[] screens = Screen.AllScreens;
if (screens.Length >= 0)
{
    // 获取第二个屏幕的信息
    int lcd = Convert.ToInt32(INIRead("par1", "screens", strIniPath));//本地可以配置屏幕显示
    Screen secondScreen = screens[lcd];//启动屏幕
    Form2 form = new Form2();
    form.StartPosition = FormStartPosition.Manual;
    form.Location = secondScreen.Bounds.Location;
    form.WindowState = FormWindowState.Maximized;
    form.ShowDialog();
}

2.增加一个线成   切图使用(图片的名称按照阿拉伯数字排列)

 public void Picture()//增加一个线成 切换图片使用
 {
     if (tu ==temp1 )//图片总张数
     {
         tu = temp;//起始图片名称
     }
      path = System.AppDomain.CurrentDomain.BaseDirectory + "\\picture" + $"\\{tu}.png"; 
     
     this.BackgroundImage = Image.FromFile(path);//背景展示的图片
     tu = tu + 1;
 }

3.创建鼠标事件

private void Form2_MouseDown(object sender, MouseEventArgs e)

 if (e.Button == MouseButtons.Left) // 判断左键是否被点击
 {
     Thread th = new Thread(Picture);
     th.Start();
    
 }
 else if (e.Button == MouseButtons.Right)
 {
     DialogResult re = MessageBox.Show("鼠标右击退出", "提醒!!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);
     if (re == DialogResult.OK)
     {
       // Application.Exit();//所有进程停止  窗户关闭
         this.Close();
     }
 }

4.效果演示:

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用 C# 和 DirectShow 开发多应用程序时,您可以使用 DirectShow 的 VMR9 滤镜来实现多显示。 以下是步骤: 1. 创建 DirectShow 图形并添加视频源过滤器。 2. 创建 VMR9 滤镜并将其添加到 DirectShow 图形中。 3. 配置 VMR9 滤镜以支持多显示。您需要设置 VMR9 的显示模式为“窗口化”或“全模式”。 4. 使用 VMR9 的 SetWindowPosition 方法将每个 VMR9 滤镜实例的位置和大小设置为相应的屏幕。 5. 启动 DirectShow 图形并播放视频。 下面是一些代码片段,演示如何实现多显示: ```csharp // 创建 DirectShow 图形 IGraphBuilder graphBuilder = (IGraphBuilder)new FilterGraph(); graphBuilder.RenderFile("C:\\video.avi", null); // 创建 VMR9 滤镜 IBaseFilter vmr9 = (IBaseFilter)new VideoMixingRenderer9(); // 将 VMR9 滤镜添加到 DirectShow 图形中 graphBuilder.AddFilter(vmr9, "VMR9"); // 配置 VMR9 滤镜 IVMRFilterConfig9 vmrConfig = (IVMRFilterConfig9)vmr9; vmrConfig.SetRenderingMode(VMR9Mode.Windowed); // 获取屏幕信息 Screen[] screens = Screen.AllScreens; // 设置每个 VMR9 滤镜实例的位置和大小 for (int i = 0; i < screens.Length; i++) { VMR9WindowlessControl9 vmrControl = (VMR9WindowlessControl9)vmr9; vmrControl.SetVideoPosition(null, screens[i].Bounds); } // 启动 DirectShow 图形并播放视频 IMediaControl mediaControl = (IMediaControl)graphBuilder; mediaControl.Run(); ``` 请注意,此代码片段仅用于演示多显示的基本实现方法。您可能需要根据自己的应用程序要求进行更改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值