テキストがオンになっているすべてが透明な複数のウィンドウを持つ ac# アプリケーションを作成したいと考えています。
注意が必要なのは、これらのフォームをデスクトップの上に配置することですが、デスクトップ アイコンの下に配置することです。これは可能ですか?
ウィンドウを透明にするだけで、非常に簡単です。
this.BackColor = Color.Fuchsia;
this.TransparencyKey = Color.Fuchsia;
次のようなことを実行して、デスクトップやウィンドウの下の他のものとやり取りできるようにすることができます。
public const int WM_NCHITTEST = 0x84;
public const int HTTRANSPARENT = -1;
protected override void WndProc(ref Message message)
{
if ( message.Msg == (int)WM_NCHITTEST )
{
message.Result = (IntPtr)HTTRANSPARENT;
}
else
{
base.WndProc( ref message );
}
}
ヒントをありがとうジェフ。それはまだ私が求めているものではありません。ウィンドウがデスクトップの一部であるかのように効果的に表示されるようにして、アイコンをフォームの上に配置できるようにしたいと考えています。
たぶん、それを行う別の方法があります。テキストやグラフィックをデスクトップに直接描画できますか?