delphi - 有什么方法可以检测是否单击了表单?

标签 delphi delphi-xe mouseclick-event onmouseclick

<分区>

德尔福 XE

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

最佳答案

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

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

如果您确实要检测表单激活,请使用 OnActivate

关于delphi - 有什么方法可以检测是否单击了表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184957/

相关文章:

delphi - 我必须使用哪个 Windows 注册表项来安装 Delphi Expert?

delphi - 如何重新编译对VCL源文件(Menus.pas)的修改?

delphi - 帮助洞察中的新行

delphi - 将C结构转换为delphi

delphi - 导入COM组件: Difference c# vs. Delphi XE

c# - 更改 DataGridView CellMouseClick 上的单元格背景色

java - 是否可以使用 getClic() 来获取 X() ?

c# - 标签点击事件

delphi - 使用delphi打印文本文件所需的帮助

c# - 为什么 regasm.exe 使用错误的 GUID 注册我的 C# 程序集?