TObject::Dispatch - C++ Builder

C++ Builder 参考手册 ➙ System ➙ TObject ➙ Dispatch


头文件:#include
命名空间:System
函数原型:

virtual void __fastcall Dispatch(void *Message);

System::TObject::Dispatch 是 System::TObject 的成员函数,是用来处理消息的,如果子类需要处理消息,可以重载这个函数,如果有没有处理的消息,需要调用父类的 Dispatch,如果父类仍然没有处理,会调用 DefaultHandler 进行默认的处理。

  • 如果 Dispatch 处理消息没有找到处理的方法,或者不需要额外处理的消息,会调用 DefaultHandler 进行默认的消息处理;
  • 使用 BEGIN_MESSAGE_MAP、VCL_MESSAGE_HANDLER、END_MESSAGE_MAP 处理消息,相当于重载 Dispatch
  • 也可以通过重载 TControl::WndProc 处理消息;
  • TControl::WndProc 调用了 TObject::Dispatch;
    TObject::Dispatch 调用了 TObject::DefaultHandler;
    TObject::DefaultHandler 没有代码,是预留给子类重载来处理消息的;
    这说明 DefaultHandler 处于消息处理的最底层,如果用其他方法可以解决,最好不要重载这个函数。

参考:

  • Vcl::Controls::TControl::WndProc
  • System::TObject::DefaultHandler
  • System::TObject
  • VCL 类继承关系

C++ Builder 参考手册 ➙ System ➙ TObject ➙ Dispatch

你可能感兴趣的:(TObject::Dispatch - C++ Builder)