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

c++builder 重载WindowProc、WndProc 截获消息的更多相关文章

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

    c++builder 重载WindowProc.WndProc 截获消息 方法一WindowProc void __fastcall  myWindowProc(Messages::TMessage ...

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

    c++builder 重载WindowProc.WndProc 截获消息 方法一WindowProc void __fastcall  myWindowProc(Messages::TMessage ...

  3. WndProc Message消息解释

    public class WindowsMessage { public const int WM_NULL = 0x0000; // public const int WM_CREATE = 0x0 ...

  4. WndProc Msg 消息列表

    WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_DESTROY = 0x0002;一个窗口被销毁 WM_MOVE = 0x0003;移动一个窗口 ...

  5. c# WndProc事件 消息类型

    转载:https://www.cnblogs.com/idben/p/3783997.html WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_D ...

  6. Delphi中的消息截获(六种方法:Hook,SubClass,Override WndProc,Message Handler,RTTI,Form1.WindowProc:=@myfun)good

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

  7. 结合windows消息系统理解C#中WndProc函数和DefWndProc函数

    Windows消息系统由3部分组成:     1.消息队列.Windows应用程序的消息是由Windows统一在一个消息队列中管理的.     2.消息循环.应用程序从Windows消息队列中获得自己 ...

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

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

  9. 【转】C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)

    C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1) #region 截获消息        /// 截获消息  处理XP不能关机问题        protected ...

随机推荐

  1. 多线程安全的HTTPCLIENT

    private static HttpClient httpClient;     static {           HttpParams params = new BasicHttpParams ...

  2. 日期选择插件clndr的使用

    需求是:在HTML中绘制日历直接供用户选择 而不是使用datepicker之类的表单插件让用户点击input后弹出datepicker让用户选择 浏览了一些解决方案后,发现  CLNDR 这个jQue ...

  3. R语言 rwordseg包的下载

    在CRAN中没有,如果通过R下载经常会出错,使用以下地址下载后加载本地包 http://R-Forge.R-project.org/bin/windows/contrib/3.0/Rwordseg_0 ...

  4. hibernate4 二级缓存demo实例

    转载:http://blog.csdn.net/chaoowang/article/details/21236501 hibernate使用版本是:hibernate-release-4.3.4.Fi ...

  5. Strom Topology执行分析:worker数,Bolt实例数,executor数,task数

    在创建Storm的Topology时,我们通常使用如下代码:builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).none ...

  6. [反汇编练习] 160个CrackMe之022

    [反汇编练习] 160个CrackMe之022. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  7. LA 3516 Exploring Pyramids (记忆化搜索)

    题意 给定一个DFS序列,问能有多少树与之对应. 思路 设输入序列为S,dp(i, j)为子序列Si, Si+1, --, Sj对应的树的个数,则边界条件为d(i, i) = 1,且Si != Sj时 ...

  8. python练习程序(显示图像)

    import matplotlib as mpl import Image import numpy as np import matplotlib.pyplot as plt im=Image.op ...

  9. aspose.Cells 导出Excel

    aspose aspse.Cells可以操作Excel,且不依赖于系统环境. 使用模板,通过绑定输出数据源 这种适合于对格式没有特别要求的,直接绑定数据源即可.和数据绑定控件差不多. Workbook ...

  10. 《C++ primer》--第1,2章小结

    来源:http://blog.csdn.net/wangqiulin123456/article/details/8483853 1.变量初始化:      定义变量时,应该给变量赋初始值,除非确定将 ...