• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++builder重载WindowProc、WndProc截获消息(比Delphi多一个MessageMap方法) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

c++builder 重载WindowProc、WndProc 截获消息 

方法一WindowProc

void __fastcall  myWindowProc(Messages::TMessage &msg); //增加
Classes::TWndMethod OldWindowProc;  //增加

 

void __fastcall  TForm1::myWindowProc(Messages::TMessage &msg)
 {
   if (msg.Msg == WM_MOUSEWHEEL)
   {
     //::MessageBox(NULL,"OK","Message",0);  //测试
     Caption = Now();
   }

   else
     OldWindowProc(Message);
 }

void __fastcall TForm1::FormCreate(TObject *Sender)
{

  OldWindowProc=Edit1->WindowProc;
  Edit1->WindowProc=myWindowProc;        
}

方法二 MESSAGE_MAP

class TForm1 : public TForm
{
__published: // IDE-managed Components
        TEdit *Edit1;
private: // User declarations
void __fastcall OnEditMouseWell(TMessage &msg);
BEGIN_MESSAGE_MAP 

MESSAGE_HANDLER(WM_MOUSEWHEEL, TMessage, OnEditMouseWell)

END_MESSAGE_MAP(TForm)  //TForm 换成TEdit 

public:  // User declarations
        __fastcall TForm1(TComponent* Owner);
};

 void __fastcall TForm1::OnEditMouseWell(TMessage &msg)
 {
   if(String(ActiveControl->ClassName())=="TEdit")  //所有的Edit
      Caption   = Now(); //测试


//TForm::Dispatch(&Msg); 

}

方法三 重载 WndProc

private: // User declarations
     void __fastcall WndProc(Messages::TMessage &msg);

 

void __fastcall TForm1::WndProc(Messages::TMessage &msg)
{
  if (msgMsg == WM_MOUSEWHEEL && msg.WParam )
    {
      Caption = Now();
    }
    TForm::WndProc(msg);
}

四、ApplicationEvents控件

 窗体上放置ApplicationEvents1控件,在ApplicationEvents1Message事件里判断。

void __fastcall TForm3::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
    if (Msg.hwnd == this->DBGrid1->Handle && Msg.message == WM_MOUSEWHEEL)
        this->Caption = Now();
}

http://www.cnblogs.com/cb168/p/4705059.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab的poly()函数发布时间:2022-07-18
下一篇:
matlab读写视频VideoReader/VideoWriter - 鹅要长大发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap