点击C#表单

时间:2010-05-09 16:05:21

标签: c#

我创建了一个半透明的表单。我希望人们能够点击表单区域,并且表单不能处理点击。我希望表单下面的任何内容都能接收点击事件。

1 个答案:

答案 0 :(得分:5)

您可以使用SetWindowLong

执行此操作
int initialStyle = GetWindowLong(this.Handle, -20);
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20);

这里有一些神奇的数字:

  • -20 - GWL_EXSTYLE

      

    检索扩展窗口样式。

  • 0x80000 - WS_EX_LAYERED

      

    创建layered window

  • 0x20 - WS_EX_TRANSPARENT

      

    指定在绘制窗口下方的兄弟(由同一个线程创建)之前,不应绘制使用此样式创建的窗口。窗口显示为透明,因为底层兄弟窗口的位已被绘制。

网上有很多关于如何执行此操作的文章,例如this one