Visual C# ウィンドウ フォームの透明部分をクリックしますか?
-
02-07-2019 - |
質問
パネルを作成し、画面全体に表示されるように設定しました。その下にウィンドウが表示されますが、クリックスルーできるようにしたいのです。つまり、ファイルをクリックしたり、透明度を通して別のオブジェクトのツールチップが表示されるようにする必要があります。
RE:当たり前すぎるかもしれませんが、右クリックして「最背面へ移動」を選択してパネルを最背面へ送ってみたことはありますか?
つまり、デスクトップやFirefoxのようなものであり、私のプロジェクト内の何かではありません。
解決
透明なトップレベルのフォームを作成するのは非常に簡単です。画面または必要な領域を塗りつぶし、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);
}
所属していません StackOverflow