C# Can';t在ActiveX控件上绘制图像

C# Can';t在ActiveX控件上绘制图像,c#,activex,drawimage,C#,Activex,Drawimage,我正在我的项目中使用第三方ActiveX视频控件。控件可以指向网络摄像机,并显示视频流。工作很好。。。那不是我的问题 我的问题是,我试图在该控件上绘制一个图像,而我得到的只是ActiveX控件后面的图像。ActiveX控件当前刚刚被放到Windows窗体的中间。我重写了表单的OnPaint()方法,如下所示: protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); e.Grap

我正在我的项目中使用第三方ActiveX视频控件。控件可以指向网络摄像机,并显示视频流。工作很好。。。那不是我的问题

我的问题是,我试图在该控件上绘制一个图像,而我得到的只是ActiveX控件后面的图像。ActiveX控件当前刚刚被放到Windows窗体的中间。我重写了表单的OnPaint()方法,如下所示:

protected override void OnPaint(PaintEventArgs e)
    {
       base.OnPaint(e);

       e.Graphics.DrawImage(Properties.Resources.ProgressBar, new Point(300, 300));
    }
我的图像确实在表单上绘制,但它在ActiveX后面。我使用(300300)的起始点故意使我的图形偏离中心,这样如果它被画成ActiveX,我就可以看到它的一部分向外窥视


如何在ActiveX控件前面获取图像?

您的问题相当于“为什么在我的窗口中绘制时,它的子窗口绘制在我的图形上方”(假设它不是无窗口控件,这是不可能的)


你应该思考你真正想要达到的目标,并相应地画出来。如果你想在别人的窗口上画画-子类,然后自己画。如果您只需要覆盖图像的一部分,请创建另一个窗口并放置在另一个子窗口的上方

好的,我明白了
daveI创建了一个子类,然后在OnNewFrame处理程序中进行绘图。OnPaint没有用处,因为控件不经常调用它,并且下一帧会覆盖我的图像(进度条)。但即使设置了优化器双缓冲设置,它也会严重闪烁。