0

是否可以在不调整表单可见性的情况下使表单的整个边界最透明?

我正在使用 user32 api 调用来WindowFromPoint找到鼠标下的控件。在某些情况下,我想忽略浮动在主表单(或另一个子表单)前面的子表单的存在,但保持此表单忽略可见。

将表单的 Opacity 设置为忽略 0 将成功地导致 hittest 直接通过它,但表单显然是不可见的,我希望它保持可见。

由于这个子窗体上可以有任意数量的控件,有没有办法让这个窗体拦截所有WM_NCHITTEST发送到窗体上子控件的消息,以便我可以为每个控件返回最合适的透明度?表单中包含的控件是任意的,因此我无法在内部对其进行修改。

4

1 回答 1

1

您正在寻找 WS_EX_TRANSPARENT Windows 样式。

这个答案给出了一个足够好的解释。

于 2012-06-16T22:05:18.100 回答