C++ Builder 6.0 消息重载的处理

版权声明:本文为博主原创文章,未经博主允许不可以转载。 https://blog.csdn.net/aasmfox/article/details/84643638

要创建模板生成的程序,就要使用RectTrack,进行组件拖放,动态创建各式组件:

要使用的技术要点:

C++B中的消息处理机制,每个Control都有一个MainWndProc是static 函数,实际调用的是WndProc,这个是是虚函数,

各个组件可以重载wndproc来处理特定消息,缺省是调用Dispose消息函数:

一、重载WndProc函数


void __fastcall TForm1::WndProc(Messages::TMessage &msg)
{
    if (msg.Msg == WM_LBUTTONDOWN )
    {
      Caption = "down";
      POINT pt ; 
       GetCursorPos(&pt);
          ::ScreenToClient(Handle, &pt);

           TrackRubberBand(Handle,pt ) ;
           this->Text ="down";
      return ;
    }

    if (msg.Msg == WM_LBUTTONUP )
    {
      Caption = "up";
      return ;
    }

    TForm::WndProc(msg);
}

C++ Builder为了方便地处理消息,定义了以下三个处理消息的宏:

  BEGIN_MESSAGE_MAP

  VCL_MESSAGE_HANDLER(msg,type,meth)

  END_MESSAGE_MAP(base)

猜你喜欢

转载自blog.csdn.net/aasmfox/article/details/84643638