博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++builder Form重载WindowProc、WndProc 截获消息
阅读量:4326 次
发布时间:2019-06-06

本文共 1558 字,大约阅读时间需要 5 分钟。

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();}

 

WM_LBUTTONDOWN

转载于:https://www.cnblogs.com/cb168/p/4705059.html

你可能感兴趣的文章
小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-03CAP原理、常见面试题
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-06 Feign核心源码解读和服务调用方式ribbon和Feign选择...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-02 Netflix开源组件断路器
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-05熔断降级服务异常报警通知
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-08 断路器监控仪表参数
查看>>