2
我在設計時捕獲TCustomPanel組件的鼠標事件時遇到一些困難。我試過 CMDesignHitTest
返回Message.Result := 1
。當鼠標進入組件時它可以正常捕獲,但在鼠標離開時無法感知。我試過也搞亂組件風格,但是這根本不起作用。我明白(從我在網上收集的內容),在CMDesignHitTest
事件中返回Message.Result := 1
後,組件捕獲了所有鼠標事件,但它似乎不適用於標準事件。我想知道有沒有人能夠就此問題給我一個有效的樣本。我非常感謝。捕獲鼠標在設計時輸入/離開
作爲組件開發人員,您不應該使用標準的OnMouseEnter和OnMouseLeave事件。這些是用於組件*用戶*的,並且在設計時,它們將被連接到IDE用於引用用戶代碼中的功能的特殊佔位符。因此,忘記事件:在設計時你想在組件中檢測哪些特定的*消息*? –
你沒有說你正在使用哪個版本的Delphi。在舊版本中,'CM_MOUSELEAVE'被打破,即使'CM_MOUSEENTER'工作正常也不會發出。通過讓VCL調用TrackMouseEvent()來接收WM_MOUSELEAVE消息來幫助觸發CM_MOUSELEAVE消息,這在更高版本中得到了修復。 –