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

c++builder Form重载WindowProc、WndProc 截获消息相关推荐

  1. 关于 Orbeon form PE 版本 Unauthorized 错误消息

    我在使用 orbeon PE 版本的 JavaScript embedded API 功能时,遇到如下错误消息: 点击 home 页面自带的 forms control 页面: 能正常打开: 也能正常 ...

  2. Delphi中的消息截获

    Windows是一个基于消息驱动的系统,因此,在很多时候,我们需要截获一些消息然后自己进行处理.而VCL系统又有一些特定的消息.下面对我所了解的delphi环境中截获消息进行一些总结.       就 ...

  3. C Builder中如何利用消息

    规范的BCB过程利用Application->Run()进去消息循环,在Application的ProcessMessage措施中,利用PeekMessage措施从消息队列中提取消息,并将此消息 ...

  4. C# 重写WndProc及发送消息

    阅读目录 重写WndProc方法来处理 Windows 消息 C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(2) C# 重写WndProc 拦截 发送 系统消息 + w ...

  5. C# 重写WndProc 消息循环

    重写WndProc方法来处理 Windows 消息 处理 Windows 消息. 在开发winForm时,常常要处理Windows消息,可以重写WndProc来实现.常见代码如下: using Sys ...

  6. MFC消息详解 (WindowProc|OnCommand|OnNotify)

    1. 怎样使用MFC发送一个消息用MFC发送一个消息的方法是, 首先,应获取接收消息的CWnd类对象的指针: 然后,调用CWnd的成员函数SendMessage( ). LRESULT Res=pWn ...

  7. VB无所不能之三:VB截获Windows消息的钩子

    为什么80%的码农都做不了架构师?>>>    本文地址:http://blog.csdn.net/useway <Java程序员,上班那点事儿> --作者:钟声 VB一 ...

  8. Cempi实战攻略(六)——如何截获到达的短消息

    Cempi实战攻略(六)--如何截获到达的短消息 By 吴春雷 QQ:819543772 EMAIL:wuchunlei@163.com 1.      MapiRule是什么?我从哪里能够得到它? ...

  9. 深入BCB理解VCL的消息机制

    深入BCB理解VCL的消息机制 引子:本文所谈及的技术内容都来自于Internet的公开信息.由笔者在闲暇之际整理 后,贴出来以飴网友,姑且妄称原创.每次在国外网站上找到精彩文章的时候,心中都 会暗自 ...

  10. Windows消息机制-PreTranslateMessage

    PreTranslateMessage作用和使用方法 Windows消息机制的流程: A. 操作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中 B. 应用程序在消息循环中调用GetMe ...

最新文章

  1. Nature:拟南芥微生物组功能研究2细菌基因组测序和分析
  2. 剑指offer二:字符串中的空格替换
  3. C# 平时碰见的问题【1】
  4. 密码技术应用--AES文件加解密
  5. 2019年有三AI“春季”划,给我一个荣耀,还你一生荣耀
  6. 【mmdetection】参数解析 转载
  7. Qt操作Office的一个实例--口算题生成器制作。
  8. 54. Spiral Matrix
  9. 相见恨晚的 Python 内置库:itertools
  10. 设计一代码,逆置带头结点的动态单链表L
  11. 快到年底了,小伙伴开始关心年终奖话题了
  12. 阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...
  13. Linux常用命令汇总--cat
  14. centos 下安装nginx
  15. 涨姿势,原来程序员喝酒都是这样的呀
  16. key去掉下划线自动大写首字母工具类
  17. ps3本服务器维修,ps3端ftp服务器
  18. 12月18日科技资讯|支付宝、微信回应3D面具破解人脸识别;ofo 否认「发币」;Kafka 2.4.0 发布
  19. QQ能上网,网页不行总解决办法
  20. response中setContentType、setCharacterEncoding和setHeader方法的解释

热门文章

  1. python程序员到哪里_Python程序员都知道的入门知识の五
  2. ubuntu linux镜像文件下载地址,ubuntu7.04下载地址大合集
  3. python读取图片路径f.read()转化为bytes类型
  4. 成功解决./nvidia-installer: invalid option: “‐‐no‐opengl‐files“ ERROR: Invalid commandline, please run `
  5. 图像分类系统之功能实现概要
  6. 欧几里得算法和唯一分解定理
  7. xuperchain 区块最大大小 区块容量 maxblocksize
  8. 区块链 fisco bcos webase-front docker方式部署
  9. 本地事务和分布式事务区别
  10. nginx IP 80跳转443