如何截获Application中的全局Message?(100分)

  • 主题发起人 主题发起人 坏蟑螂
  • 开始时间 开始时间

坏蟑螂

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个组件,它能截获应用中的所有窗口的“按下回车”的Message,但我不愿改动Application.OnMessage,因为我是做组件,我不应限制我的组件使用者使用这个属性。我也不愿为每个窗口都重载一个消息处理方法,有没有办法在一个组件的一个方法中截获此消息呢,我希望此组件只被添加到应用中一次。
谢谢。
 
看一下关于
Application.HookMainWindow
的帮助吧.
它可以钩住所有到APPLICATION的消息.
 
能再详细点吗?
能举个例吗?
我对Windows 的 Message 常量不太熟悉,
比如:我如何判断一个 TMessage 是一个TWMChar 呢?
 
??使用Application.OnMessage并不冲突。
您的代码可以这样写:
1.设置OnMessage:
OldOnMessage := Application.OnMessage;
Application.OnMessage := MyOnMessage;
2. OnMessage处理:
//...your process
if Assigned(OldOnMessage) then
OldOnMessage(...);
 
后退
顶部