如何禁用透明控件上的点击?

时间:2010-08-02 08:14:02

标签: c# winforms gdi+ transparency panel

我们的应用程序中有一个需要Google地球背景图像的地图表单,并且由于您无法在面板下的浏览器中使用Google地球插件,因此我们使用第二种形式来显示背景图像。我们在地图表单上有一个透明的面板,绘制完成时,Google地球是在下面同步的表格上绘制的。

我们通过为表单提供255, 250, 250的透明度键并在绘制之前将面板背景设置为此颜色来实现透明度。虽然现在看了在线提供的信息后,看来该小组不应该得到光标事件。

这在大多数情况下都能很好地工作,但是在一台或两台客户机器上(一台肯定是Windows 7),光标在透明的面板上无法正常工作。如果光标放在地图的绘制区域上,那么一切正常。

我认为这个问题是由于透明度点击,但是因为它在大多数情况下有效,我不确定究竟发生了什么。我们更新了所有图形驱动程序,以查看客户计算机上是否有自定义设置,但这没有帮助。

是否有人对透明度密钥的作用有明确的描述?有没有办法绝对设置面板应该接收鼠标事件?

修改
添加了有关透明度密钥的详细信息。

2 个答案:

答案 0 :(得分:0)

尝试在窗口窗口的WndProc中拦截WM_HITTEST消息,当您知道它在客户区域上时,返回相应的HTCLIENT值。可能是默认窗口处理有时会返回不同的值。

答案 1 :(得分:0)

Stevo - 你有没有找到答案?我有同样的问题,并想出将主窗体的透明度键更改为一些奇怪的颜色。可能会或可能不会帮助你。我有一个透明的自定义控件,但窗体键颜色也是我的绘图颜色,因此允许它点击(奇怪)。我改变了它,它有效!