0

フォーカスを失ったときにウィンドウ (アプリの外部) を透明にするアプリケーションを作成しようとしています。ほとんどのこと (ウィンドウ ID の取得、透過設定など) は簡単ですが、1 つのことを除いて、ウィンドウをフックするにはどうすればよいですか?

4

1 に答える 1

1

相互運用を使用できます。SendMessage()関数を使用して、ウィンドウにカスタム メッセージを送信します。そのメッセージを受け取ったら、ウィンドウはSetLayeredWindowAttributes()を呼び出して透明度を変更できます。

もう1つのことは、 WM_KILLFOCUSをリッスンしてフォーカスを失ったときに、ウィンドウをITSELF透明にできるはずです。

編集:

C# で Deactivate および Activated イベントをラッチします。

    private void Form1_Deactivate( オブジェクト送信者, EventArgs e )
    {
      this.Opacity = 0.5;
    }

    private void Form1_Activated( オブジェクト送信者, EventArgs e )
    {
      this.Opacity = 1.0;
    }
于 2009-06-21T11:35:16.387 に答える