相关疑难解决方法(0)

如何从表单外部捕获表单的某些事件?

我正在研究需要监控多种形式的东西.从表单外部,并且不在表单中放置任何代码,我需要以某种方式从这些表单中捕获事件,最有可能以Windows消息的形式.但是你如何捕获与它相关的类外的Windows消息呢?

我的项目有一个对象,它包装它正在监视的每个表单,我认为这个处理将进入这个对象.基本上,当我创建一个我想要监视的表单时,我创建了一个相应的对象,该对象又被添加到所有已创建表单的列表中.最重要的是,当该表单关闭时,我必须知道所以我可以从列表中删除此表单的包装器对象.

这些活动包括:

  • 最小化
  • 最大化
  • 恢复
  • 聚焦进/出

我不想要的:

  • 此处理的任何表单或表单单元内的任何代码
  • 从任何自定义基本表单继承表单
  • 使用表单的事件,例如OnClose因为它们将用于其他目的

我想要的是:

  • 处理这些事件的Windows消息
  • 有关如何从课外获取Windows消息的任何提示
  • 我需要监听哪些Windows消息

问题用相同的信息重写,但方法不同

delphi delphi-7 tform windows-messages

7
推荐指数
2
解决办法
5218
查看次数

如何使表单或窗口控件正确地重新识别?

如您所知,窗口控件(包括表单)的窗口句柄被视为易失性.也就是说,设置一些属性可能会导致控制以破坏其窗口句柄,然后重新创建(有一堆这种技术的实例,搜索StdCtrlsRecreateWnd).

因此,当我需要在创建后注册我的HWND OS并在销毁之前取消注册它之后我应该覆盖相应的方法对.简要介绍ControlsForms给了我3对,所有这些都是虚拟的:

  • CreateHandle/DestroyHandle
  • CreateWindowHandle/DestroyWindowHandle
  • CreateWnd方法/ DestroyWnd

还有对吗?我应该覆盖哪一对表格?哪一对用于一般窗口控制?

delphi vcl

3
推荐指数
1
解决办法
594
查看次数

标签 统计

delphi ×2

delphi-7 ×1

tform ×1

vcl ×1

windows-messages ×1