2010-08-02 31 views
1

我們在我們的應用程序中有一個需要Google Earth背景圖的映射表單,並且因爲您不能在面板下的瀏覽器中使用Google Earth插件,所以我們使用另一個表單來顯示背景圖像。我們在地圖上繪製了透明面板,而Google地球則繪製在下面同步的表單上。如何禁用透明控件上的點擊?

我們通過給出表單透明鍵255, 250, 250並在面板背景上繪製它之前將其設置爲該顏色來實現透明度。雖然現在查看網上可用的信息後,看起來該面板不應該獲取光標事件。

這在大多數情況下都能很好地工作,但在一個或兩個客戶機器上(一個是明確的Windows 7),光標在它透明的面板上無法正常工作。如果光標放置在地圖的繪製區域上,則一切正常。

我認爲這個問題是由於透明度點擊通過,但因爲它在大多數情況下工作,我不知道究竟發生了什麼。我們已經更新了所有的圖形驅動程序,以查看客戶機器上是否有自定義設置,但這沒有幫助。

有人對透明鍵的作用有明確的描述嗎?有沒有辦法絕對設置面板應該接收鼠標事件?

編輯
增加了關於透明度鍵的細節。

+1

啊,分層窗口的樂趣!祝你好運。 – leppie 2010-08-02 08:18:15

回答

0

嘗試攔截窗體窗口的WndProc中的WM_HITTEST消息,並且當您知道它在客戶區上時返回適當的HTCLIENT值。這可能是因爲默認窗口處理有時會返回不同的值。

0

Stevo - 你有沒有想過這個答案?我有同樣的問題,並想出將主窗體的透明鍵更改爲一些奇怪的顏色。可能或可能不會幫助你。我有一個具有透明度的自定義控件,但表格關鍵顏色也是我的繪畫顏色,因此可以點擊(奇怪)。我改變了它,它的工作!

+0

我們實際上已將我們的應用程序重新編寫爲不再需要透明度。 – stevehipwell 2013-02-14 12:40:22