Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342383
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:00:46

按钮是一个控件,类完全封装起来了,如果想截取按钮的 Windows 消息,继承按钮类新做一个控件太麻烦了。
而控件的 WindowProc 事件就是执行控件的 Windows 消息,和 WndProc 是相同的作用。

BnOKDefProc = BnOK->WindowProc; //保存按钮需要执行的 Windows 消息到 BnOKDefProc
BnOK->WindowProc = BnOkWndProc; //给按钮一个新的消息处理函数, 在这个函数里如果用按钮以前的处理, 需要调用 BnOKDefProc

void __fastcall TFormAbout::BnOkWndProc(Messages::TMessage &Message) //相当于重载 BnOK::WndProc() 方法
{
  if(Message.Msg==CM_MOUSEENTER) //新处理的 Windows 消息, 当鼠标移入按钮时产生的
    BnOK->Font->Color = clRed;
  else if(Message.Msg==CM_MOUSELEAVE) //新处理的 Windows 消息, 当鼠标移出按钮时产生的
    BnOK->Font->Color = clWindowText;
  BnOKDefProc(Message); //其他消息用按钮原来的, 相当于调用父类的 TButton::WndProc(Message);
}


--------------------next---------------------

阅读(1142) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~