【问题标题】:Draw on multiple Screen without a form在没有表格的情况下在多个屏幕上绘图
【发布时间】:2018-05-04 00:00:30
【问题描述】:

这个问题的解决方案是我一直在寻找的here。但是这个问题的解决方案只适用于一个屏幕。我想在多个屏幕上打印相同的绘图。我如何做到这一点。请帮帮我。

谢谢

【问题讨论】:

  • 您必须为每台显示器使用 DC 绘制两次图片。
  • @keith 我如何获得不同的显示器。我做了这个 Graphics g = Graphics.FromHwnd(IntPtr.Zero); g.DrawRectangle(p, new Rectangle(Screen.AllScreens[i].Bounds.X, Screen.AllScreens[i].Bounds.Y, Screen.AllScreens[i].Bounds.Width, Screen.AllScreens[i].Bounds 。高度));但这只是在同一个屏幕上绘制了两次

标签: c# console drawing


【解决方案1】:

链接的解决方案描述了使用显示上下文句柄 (hdc) 来获取 GDI+ 的绘图区域。 hdc 通常是窗口的绘图区域或主显示器。正如 keith 在 cmets 中提到的,您需要为第二个显示器获取 HDC 并绘制到该显示器。

https://msdn.microsoft.com/en-us/library/dd144947%28v=vs.85%29.aspx

这是另一个在 C++ 中尝试类似结果的问题。这些概念应该几乎相同。 How to draw over second monitor with GDIPLUS

【讨论】:

  • 这就是我正在做的,但它仍然在同一个屏幕上绘图两次。 IntPtr WindowDC = GetWindowDC(IntPtr.Zero);使用 (Graphics grfx = Graphics.FromHdc(WindowDC)) { for (int i = 0; i
  • 我认为你错过了这一点,为了获得比主监视器更多的东西,你必须使用 EnumDisplayMonitors。答案中提供的两个链接都对此进行了详细说明...以下是有关如何使用 EnumDisplayMonitors 的更多信息:msdn.microsoft.com/en-us/library/dd162610(v=vs.85).aspx
猜你喜欢
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2019-04-02
相关资源
最近更新 更多