如何在C#中挂钩多个窗口?
-
06-07-2019 - |
题
我正在尝试创建一个应用程序,当它失去焦点时,使窗口(应用程序外部)透明。大多数事情(获得窗口ID,设置透明等)都很容易,除了一件事 - 如何挂钩窗户?
解决方案
您可以使用互操作。使用 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 ; }
不隶属于 StackOverflow