zoukankan      html  css  js  c++  java
  • c++builder 重载WindowProc、WndProc 截获消息(比Delphi多一个Message Map方法)

    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

  • 相关阅读:
    单细胞转录组CNV分析
    瘦子增肌计划 | 健身
    WashU Epigenome Browser | ChIP-seq | DNase-Seq | ATAC-seq | 表观
    羽毛球新手教学
    可变剪切 | isoform | 提取特定exon的usage | DEXSeq
    文献快读 | 单细胞测序肾癌的免疫微环境与临床疗效的关系
    內外全科醫學士課程 | MBBS | 医疗
    天龙八部 | 中国名著 | 刷剧
    当代人工智能的基石 | 数据标注
    提取基因的特定外显子exon的碱基序列 | NCBI
  • 原文地址:https://www.cnblogs.com/findumars/p/5597286.html
Copyright © 2011-2022 走看看