2009-06-21 17 views
0

我正在尝试创建一个应用程序,它在失去焦点时使窗口(应用程序外部)透明。大部分事情(获得窗口ID,透明等)都很容易,除了一件事情 - 我如何钩住窗户?如何在C#中挂接多个窗口?

+0

假设这是WinForms ... – Noldorin 2009-06-21 11:27:48

回答

1

您可以使用互操作。使用SendMessage()函数可以向您的窗口发送自定义消息。一旦您收到该消息以更改其透明度,该窗口便可致电SetLayeredWindowAttributes()

另一件事是你真的应该能够使窗口把自己透明的,当它输了球通过监听WM_KILLFOCUS

编辑焦点:

含住在C#中停用和激活的事件。

 
    private void Form1_Deactivate(object sender, EventArgs e) 
    { 
     this.Opacity = 0.5 ; 
    } 

    private void Form1_Activated(object sender, EventArgs e) 
    { 
     this.Opacity = 1.0 ; 
    }