c++builder 重载WindowProc、WndProc

方法一WindowProc

void __fastcall  myWindowProc(Messages::TMessage &Message); //增加
Classes::TWndMethod OldWindowProc;  //增加

void __fastcall  TForm1::myWindowProc(Messages::TMessage &Message)
 {
   if (Message.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 &Message);
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 &Message)
 {
   if(String(ActiveControl->ClassName())=="TEdit")  //所有的Edit
      Caption   = Now(); //测试

//TForm::Dispatch(&Msg);

}

方法三 重载 WndProc

private: // User declarations
     void __fastcall WndProc(Messages::TMessage &Message);

void __fastcall TForm1::WndProc(Messages::TMessage &Message)
{
  if (Message.Msg == WM_MOUSEWHEEL && Message.WParam )
    {
      Caption = Now();
    }
    TForm::WndProc(Message);
}

时间: 2024-10-28 00:12:16

c++builder 重载WindowProc、WndProc的相关文章

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

重载WndProc、WindowProc、消息映射BEGIN_MESSAGE_MA 转载

方法一.重载WndProcprivate: // User declarationsvoid __fastcall WndProc(Messages::TMessage &Message);void __fastcall TForm1::WndProc(Messages::TMessage &Message){if (Message.Msg == WM_MOUSEWHEEL && Message.WParam ){Caption = Now();}TForm::WndPro

WndProc WindowProc

SubClassWndProc This example shows how to use the WndProc method and the WindowProc property to subclass a custom control's window procedure. This example subclasses the window procedure of a TListBox descendant to respond to a user-defined message c

Delphi中的消息处理

1.windows的消息驱动体系  在windows系统中,消息传递是实现对乡间通信和控制的主要手段.可以额系统都以消息驱动的方式工作.系统中发生的用户输入操作.显示信息的改变.系统环境参数变化等所有时间都以系统定义消息的形式出现在相关的应用程序和窗口.所以程序设计的主要任务就是为这些消息的处理设计代码. 在应用程序中,发送者可以通过发送消息要求接收者完成相应的处理.当程序运行时,windows系统为每个应用程序实例建立一个消息队列,一次保存发送给该程序实例的消息,在应用程序的主控部分,需要设置

C Builderr中如何利用消息

规范的BCB过程利用Application->Run()进去消息循环,在Application的ProcessMessage措施中,利用PeekMessage措施从消息队列中提取消息,并将此消息从消息队列中移除.然后ProcessMessage措施察看是否存在Application->OnMessage措施.存在则转入此措施处理消息.尔后再将处理过的消息发放给过程中的各个对象.至此,WndProc措施收到消息,并举行处理.万一有无法处理的交给重载的Dispatch措施来处理.要是还不能处理的话

vc6.0 托盘图标

在Windows操作系统中,任务栏的右边(托盘)会常驻几个图 标,如输入法切换图标.音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸.实时监测功能的杀毒软件等.这些软件在后台运行,通常不占用 太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口.有时我们自己编写的程序也希望有类似 的效果,本文将详细地介绍用VC设计托盘图标程序的方法. 一. NOTIFYICONDATA结构 NOTIFYICONDATA结构包含了系统用来处理

C#截获窗体消息

重载C#From的函数 上面的工作需要重载Form的一些函数,这样才能完成,这里首先了解一个知识点:怎么重载Form的函数? 在建立好一个WinForm的工程之后,我们可以用下面的方法找到可以重载的Form方法: (1)弹出对象浏览器 (2)选择基类型From (3)对象浏览器设置 (4)加入重载方法,以DefWndProc为例 这样就可以在需要的地方重载这个函数了,这是一个很好的方法.因为方法重载的时候一般不要自己写这个重载的函数,要从基类中copy这个函数. 截获C#Form消息 先来说接受

新建一个UI窗口-XproerUI(MFC)教程

版权所有 2009-2015 荆门泽优软件有限公司 保留所有权利 产品首页:http://www.ncmem.com/apps/xproerui/index.asp 在线文档(XproerUI):XproerUI(MFC)类文档,如何使用XproerUI库(MFC),如何使用XproerUI库(WTL) 在线文档(SkinStudio):为图片添加九宫格信息,为窗体设置背景图片,添加图片按钮,共用字体属性,控件的相对位置与绝对位置 升级日志:http://www.cnblogs.com/xpro

C++Builder 高级编程技巧

1. C++ Builder 网上资源 C++ Builder 研究 http://www.ccrun.com/ C++ Builder 程序员 http://mybcb.diy.myrice.com/ 电脑学习 C++ Builder 版块 http://www.itcomputer.com.cn/Programs/C/CB/ c++ Builder 快捷键大全: http://www.itcomputer.com.cn/Programs/C/CB/200512/11211.html C++