我有一个自定义的UserControl,使用GDI+进行绘制。它是一个透明控件,在父控件上方绘制小形状。
父窗口所做的一切就是创建控件,给它一个矩形来绘制自己,然后如果用户单击非透明区域,它就会接收事件。
绘图部分完美地运作,但现在我需要尽可能无缝地将所有MouseMove、MouseClick等事件转发到父控件,前提是这些事件发生在形状之外。
形状是使用GraphicsPath绘制的,我已经能够通过GraphicsPath.IsVisible()检测鼠标位置是否在形状上方。
我希望以零或最少的额外代码在父控件上实现这一点。父控件不应该知道MouseMove事件是从子控件转发过来的还是其他事件,它们应该平等对待。
我需要使用pinvoke/SendMessage()来完成这个任务吗?还是有更简单的方法使用.NET框架?
父窗口所做的一切就是创建控件,给它一个矩形来绘制自己,然后如果用户单击非透明区域,它就会接收事件。
绘图部分完美地运作,但现在我需要尽可能无缝地将所有MouseMove、MouseClick等事件转发到父控件,前提是这些事件发生在形状之外。
形状是使用GraphicsPath绘制的,我已经能够通过GraphicsPath.IsVisible()检测鼠标位置是否在形状上方。
我希望以零或最少的额外代码在父控件上实现这一点。父控件不应该知道MouseMove事件是从子控件转发过来的还是其他事件,它们应该平等对待。
我需要使用pinvoke/SendMessage()来完成这个任务吗?还是有更简单的方法使用.NET框架?