• Delphi TMessage[3] TApplicationEvents.OnMessage


    Delphi TMessage[3] TApplicationEvents.OnMessage

    当应用程序收到Windows消息时发生。

    property OnMessage: TMessageEvent;
    • 使用OnMessage捕获发布到应用程序中所有窗口的任何或所有Windows消息。当应用程序收到Windows消息时发生OnMessage。OnMessage只接收发布到消息队列的消息,而不接收通过Windows API SendMessage函数直接发送的消息。
    • OnMessage事件处理程序允许应用程序响应TApplication事件中声明的消息以外的消息。如果应用程序没有针对传入消息的特定处理程序,则消息将被调度到其预期的窗口,而Windows将处理该消息。
    • 警告:每秒有数千条消息通过此事件。编写处理程序时要小心,因为它会影响整个应用程序的性能。
    • 提示:从OnMessage事件处理程序调用CancelDispatch方法,以防止应用程序将事件转发给任何其他应用程序事件对象。
    type TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object;
    

    TMessageEvent包括以下参数:

    • Msg //触发事件的Windows消息。
    • Handled  //指示事件处理程序是否响应消息。如果事件处理程序将Handled设置为true,则应用程序将假定消息已完全处理,并停止对消息的任何后续处理。

    示例:

      // 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  更新时间:

  • 相关阅读:
    前端如何进阶架构师
    NPOI使用记录
    ArcGis 中空间数据的插入与更新
    (转载).net 缓存处理
    ASP.NET(c#)实现重定向的三种方法的总结
    数据库关联表之间的更新语句
    C#net多线程多文件压缩下载
    关于写文件流的情况
    C# Class获取项目的绝对路径
    C# .net中DatailsView的JS简易版
  • 原文地址:https://www.cnblogs.com/guorongtao/p/16313871.html
Copyright © 2020-2023  润新知