我正在尝试创建一个应用程序,当它失去焦点时,使窗口(应用程序外部)透明。大多数事情(获得窗口ID,设置透明等)都很容易,除了一件事 - 如何挂钩窗户?
答案 0 :(得分:1)
您可以使用互操作。使用SendMessage()功能向您的窗口发送自定义消息。一旦收到该消息,窗口就可以调用SetLayeredWindowAttributes()来改变其透明度。
另一件事是你真的应该能够通过倾听WM_KILLFOCUS
让窗户在失去焦点时将其变为透明编辑:
锁定C#中的Deactivate和Activated事件。
private void Form1_Deactivate( object sender, EventArgs e ) { this.Opacity = 0.5 ; } private void Form1_Activated( object sender, EventArgs e ) { this.Opacity = 1.0 ; }