0

プロジェクトでサードパーティの ActiveX ビデオ コントロールを使用しています。コントロールをネット カメラに向けると、ビデオ ストリームが表示されます。素晴らしい作品...それは私の問題ではありません。

私の問題は、そのコントロールの上に画像を描画しようとしていて、ActiveX コントロールの背後にある画像しか得られないことです。ActiveX コントロールは現在、Windows フォームの真ん中に配置されています。Form の OnPaint() メソッドを次のようにオーバーライドしました。

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

       e.Graphics.DrawImage(Properties.Resources.ProgressBar, new Point(300, 300));
    }

私の画像はフォームに描画されますが、ActiveX の背後にあります。(300,300) の開始点を使用して、グラフィックを意図的に中心から外し、ActiveX で描画された場合にグラフィックの一部が覗くようにしました。

ActiveX コントロールの前に画像を表示するにはどうすればよいですか?

4

1 に答える 1

0

あなたの質問は、「ウィンドウに描画すると、その子ウィンドウが描画の上に描画されるのはなぜですか」と同じです(ActiveXがウィンドウレスコントロールではないと仮定すると、可能性は低くなります)。

あなたはあなたが本当に達成しようとしていることを考え、それに応じて描くべきです。他の誰かのウィンドウに描画したい場合は、サブクラス化して自分でペイントします。画像の一部を覆う必要がある場合は、別のウィンドウを作成して、他の子の上に配置します。

于 2012-11-30T01:02:13.280 に答える