2

德尔福 XE

有什么方法可以检测表单是否收到了鼠标点击?表单中的 OnClick 事件仅在表单的空白部分触发。任何有控件的部分都不会响应。

4

1 回答 1

6

您需要过滤排队的消息以在全局级别检测鼠标事件。

  1. TApplication.OnMessage.
  2. 听听WM_MOUSEDOWNWM_MOUSEUP随心所欲,如果目标窗口句柄是窗体的句柄,还是子控件的句柄,则作出响应。
  3. 确保将消息的 Handled 参数保留为 False,以便将消息传递到其目标。

如果您确实在尝试检测表单激活,请使用OnActivate.

于 2013-11-25T08:27:59.570 回答