有没有办法检测表单是否被点击?

时间:2013-11-25 04:49:10

标签: delphi delphi-xe mouseclick-event onmouseclick

Delphi XE

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

1 个答案:

答案 0 :(得分:6)

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

  1. TApplication.OnMessage添加处理程序。
  2. 根据需要收听WM_MOUSEDOWNWM_MOUSEUP,并回答目标窗口句柄是表单句柄还是子控件。
  3. 确保将邮件的Handled参数保留为False,以便将邮件传递给目标。
  4. 如果您确实在尝试检测表单激活,请使用OnActivate