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

最新文章

  1. 【Kylin实战】Hive复杂数据类型与视图
  2. C# 时间戳转换为时间方法
  3. 如何透过HTC Vive拍摄Mixed Reality (混合现实)影片
  4. Lvs+Keepalived+Squid+Nginx负载均衡
  5. c语言的几个重要知识点
  6. 完全二叉树的高度为什么是对lgN向下取整
  7. web框架--来自维基百科
  8. easyui源码翻译1.32--TreeGrid(树形表格)
  9. C# 判断系统空闲(键盘、鼠标不操作一段时间)
  10. [Android]使用RecyclerView替代ListView(四:SeizeRecyclerView)
  11. [认证授权] 2.OAuth2(续) & JSON Web Token
  12. jsonp的案例
  13. Ubuntu下安装git
  14. 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙
  15. arx对正在操作的文件进行保存
  16. C++ 获取类成员函数地址方法 浅析
  17. 前端开发-2-HTML
  18. R软件常用命令
  19. CSS 3D的应用记录
  20. CentOS 7运维管理笔记(12)----PHP页面失去焦点后变成空白的解决方法

热门文章

  1. 【转载】关于XML文档的xmlns、xmlns:xsi和xsi:schemaLocation
  2. UVa 11014 (莫比乌斯反演) Make a Crystal
  3. 51nod1215 数组的宽度
  4. 连接mongo的服务提示:HTTP Status 500 - com.mongodb.MongoException$Network: can't call something
  5. 详解Android动画之Frame Animation(转)
  6. DOM对象常用对象的方法和属性
  7. erl0006 - erlang 查看进程状态,查看当前系统那些进程比较占资源
  8. maven整合s2sh截图
  9. 【英语】Bingo口语笔记(2) - 吞音
  10. 【转】使用oschina的git服务器