您知道如果您在菜单外单击弹出菜单会消失吗?好吧,我想重现那个。
目前,当单击按钮时,我正在创建一个带有一些组件的面板。当您单击面板上的某个按钮时,面板和子组件会消失。但是,如果您单击面板外的任何位置,我希望它消失。
最佳答案
我认为你需要安装和应用程序范围的鼠标消息 Hook ,如果你的面板是可见的并且鼠标事件的坐标在你的面板边界之外,那么隐藏面板。还要处理表单中的 WM_ACTIVATE 消息。
[已编辑:删除了涉及 SetCaptureControl() 的答案,因为在这种情况下该行为不合适]
关于delphi - 模仿外部点击弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112402/