14

パネルを作成して画面全体に表示するように設定しました。これで、その下のウィンドウが表示されますが、クリックスルーする必要があります。つまり、ファイルをクリックしたり、透明部分から別のオブジェクトのツールチップを表示したりできます。

RE:これはあまりにも明白かもしれませんが、右クリックして[Send to Back]を選択して、パネルを後ろに送ってみましたか?

私はデスクトップやFirefoxのようなものであり、私のプロジェクト内のものではありません。

4

1 に答える 1

22

透明なトップ レベルのフォームを作成するのは非常に簡単です。画面または必要な領域を塗りつぶし、同じ値の TransparenyKey の色と BackColor を持つように定義するだけです。

マウスを無視するようにするのは簡単です。WndProc をオーバーライドして、すべてのマウス位置が透明として扱われるように WM_HITTEST に指示するだけです。したがって、ウィンドウの下にあるものとマウスが相互作用するようになります。このようなもの...

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
于 2008-09-21T23:54:24.047 に答える