如何使用c#在第三方窗口周围绘制一个框?

时间:2011-01-18 19:13:16

标签: c# forms graphics window

如何围绕第三方窗口绘制矩形?我有窗口的句柄,有窗口的大小。我在窗口周围绘制一个矩形,但是当我打开其他应用程序时,该应用程序顶部会出现相同的矩形,但它没有附加到窗口。如何将其保留在后台或附在我的窗口

我现在使用的代码

IntPtr desktop = GetDC(IntPtr.Zero);
while (true)
{
  using (Graphics g = Graphics.FromHdc(desktop))
  {
    RECT rct = new RECT();
    GetWindowRect(wnd.hWnd, ref rct);
    Rectangle rect = new Rectangle(rct.Left - 2, rct.Top - 2, (rct.Right - rct.Left) + 2, (rct.Bottom - rct.Top) + 2);
    Pen myPen = new Pen(System.Drawing.Color.Red, 5);
    g.DrawRectangle(myPen, rect);
    g.Dispose();
  }
}

由于

1 个答案:

答案 0 :(得分:0)

主窗口的处理过程总是不会帮助你,因为某些应用程序,如yahoo messenger显示辅助窗口。您可能想要突出显示活动窗口。您可以获得活动窗口的句柄,一旦获得它,获取它所覆盖的区域,您可以在该位置显示您的叠加层。