Delphi TMessage[3] TApplicationEvents.OnMessage
Delphi TMessage[3] TApplicationEvents.OnMessage
当应用程序收到Windows消息时发生。
1 | property OnMessage: TMessageEvent; |
- 使用OnMessage捕获发布到应用程序中所有窗口的任何或所有Windows消息。当应用程序收到Windows消息时发生OnMessage。OnMessage只接收发布到消息队列的消息,而不接收通过Windows API SendMessage函数直接发送的消息。
- OnMessage事件处理程序允许应用程序响应TApplication事件中声明的消息以外的消息。如果应用程序没有针对传入消息的特定处理程序,则消息将被调度到其预期的窗口,而Windows将处理该消息。
- 警告:每秒有数千条消息通过此事件。编写处理程序时要小心,因为它会影响整个应用程序的性能。
- 提示:从OnMessage事件处理程序调用CancelDispatch方法,以防止应用程序将事件转发给任何其他应用程序事件对象。
1 | type TMessageEvent = procedure ( var Msg: TMsg; var Handled: Boolean ) of object ; |
TMessageEvent包括以下参数:
- Msg //触发事件的Windows消息。
- Handled //指示事件处理程序是否响应消息。如果事件处理程序将Handled设置为true,则应用程序将假定消息已完全处理,并停止对消息的任何后续处理。
示例:
1 2 3 4 5 6 7 8 9 | // DBGrid1实现鼠标的上下滚动 if (DBGrid1 . Focused) And (Msg . message = WM_MOUSEWHEEL) then begin if Msg . wParam > 0 then SendMessage(DBGrid1 . Handle, WM_KEYDOWN, VK_UP, 0 ) else SendMessage(DBGrid1 . Handle, WM_KEYDOWN, VK_DOWN, 0 ); Handled := true ; {Handled默认False, True表示之后的事件将不会执行,例如,WM_MOUSEWHEEL事件} end ; |
创建时间:2022.05.26 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报