フォーカスを失ったときにウィンドウ (アプリの外部) を透明にするアプリケーションを作成しようとしています。ほとんどのこと (ウィンドウ ID の取得、透過設定など) は簡単ですが、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 に答える