delphi - 模仿外部点击弹出菜单

标签 delphi delphi-2007

您知道如果您在菜单外单击弹出菜单会消失吗?好吧,我想重现那个。

目前,当单击按钮时,我正在创建一个带有一些组件的面板。当您单击面板上的某个按钮时,面板和子组件会消失。但是,如果您单击面板外的任何位置,我希望它消失。

最佳答案

我认为你需要安装和应用程序范围的鼠标消息 Hook ,如果你的面板是可见的并且鼠标事件的坐标在你的面板边界之外,那么隐藏面板。还要处理表单中的 WM_ACTIVATE 消息。

[已编辑:删除了涉及 SetCaptureControl() 的答案,因为在这种情况下该行为不合适]

关于delphi - 模仿外部点击弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112402/

相关文章:

c# - 调用 Windows 资源管理器外壳扩展

delphi - 使用 FILTER 进行 LDAP 查询

.net - 我可以在 "Delphi 2007 for Win32"中使用 .NET DLL 吗?

delphi - 在远程计算机上运行应用程序或进程

delphi - 为什么在 64 位 Windows 中运行时有 2 GB 内存限制?

delphi - 我应该何时以及如何混淆我的 Delphi 代码?

delphi - 什么safearraygetdata函数将safearray作为Delphi中的输入参数而不是vararray

delphi - delphi的数据访问框架

delphi - 我应该使用哪一个来为 Delphi、NativeUInt 或 NativeInt 进行 64 位指针数学运算

delphi - 为什么在使用 readbuffer 时使用 string[1] 而不是 string