-1
我需要编写一个C#程序,它将识别光标下的一个窗口并在其上绘制边框。C#。 WINAPI。在窗口上绘制
我可以很容易地得到一个窗口句柄:
...
Point point;
WinApi.GetCursorPos(out point);
WinApi.WindowFromPoint(point);
...
但我不能,该窗口上绘制...
public static void drawSelectionRectangle(IntPtr handler)
{
Rectangle rectangle;
WinApi.GetWindowRect(handler, out rectangle);
WinApi.PAINTSTRUCT paintProperties;
IntPtr paintContext = WinApi.BeginPaint(handler, out paintProperties);
IntPtr pen = WinApi.CreatePen(WinApi.PenStyle.PS_SOLID, 5, (uint) ColorTranslator.ToWin32(Color.Red));
WinApi.SelectObject(paintContext, pen);
WinApi.Rectangle(paintContext, rectangle.Left, rectangle.Top, rectangle.Right, rectangle.Bottom);
WinApi.ValidateRect(handler, IntPtr.Zero);
WinApi.EndPaint(handler, ref paintProperties);
}
我叫drawSelectionRectangle(IntPtr handler)
一次(通过点击按钮)和环(通过MyForm的onPaint()
方法,而不是我想要绘制的表单)。这似乎并不奏效。
请帮助我。我不知道该怎么办。
不工作。该窗口不属于你。所有者将画任何你可能成功绘画的东西。您需要了解Win32绘画的工作原理。无论问题是什么,这都不是解决方案。 –