首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言版
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [学习辅导]关于捕获VCL没有处理的Win…
· [学习辅导]个性凸现的动画特技效果
· [学习辅导]从TColor对象中解析出红、…
· [学习辅导]了解MicrosoftAccess安全性
· [学习辅导]升级至Access2000时出现不…
· [学习辅导]应用SQLServer链接服务器访…
· [计算机专题]VB实现程序的隐形
· [计算机专题]二级VB辅导:用VB实现“一…
· [计算机专题]在程序中做出信息的分隔线
· [计算机专题]怎样实现在VB窗体中有Html…
 精品课程
· [医卫类精品课程]名师主讲口腔执业医师…
· [精品课程推荐]公务员考试权威专家网…
· [医卫类精品课程]中医执业医师考试网上…
· [医卫类精品课程]临床助理医师网络辅导…
· [工程类精品课程]公路监理工程师考试网…
· [医卫类精品课程]执业药师考试网上辅导…
· [医卫类精品课程]名师执业医师考试网上…
· [工程类精品课程]物业管理师考试名师团…
· [财经类精品课程]名师主讲会计从业资格…
· [工程类精品课程]城市规划师考试名师在…
 考试动态
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
· [二级考试动态]2007年下半年计算机等级考…
· [二级考试动态]天津:2007年下半年全国计…
· [二级考试动态]计算机技术与软件专业技术…
· [二级考试动态]2007年计算机等级考试改期…
· [二级考试动态]河北07计算机考点出故障考…
· [二级考试动态]2007年贵州省计算机补考7月…
· [二级考试动态]了解考试系列:二级C语言的…
· [二级考试动态]了解考试系列:二级VC++语…
 试题下载
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]JavaSocket编程(二)
· [试题下载]07年计算机等级考试二级C+…
· [试题下载]07年4月计算机等级考试二级…
· [试题下载]在局域网进行IP包捕获的一…
· [试题下载]动态链接库的创建和调用
· [试题下载]计算机等级考试二级C语言模…
 学习辅导
· [学习辅导]关于捕获VCL没有处理的Win…
· [学习辅导]个性凸现的动画特技效果
· [学习辅导]从TColor对象中解析出红、…
· [学习辅导]了解MicrosoftAccess安全性
· [学习辅导]升级至Access2000时出现不…
· [学习辅导]应用SQLServer链接服务器访…
· [学习辅导]二级C语言考试辅导教程第二…
· [学习辅导]二级C辅导教程及考点分析:…
· [学习辅导]初学者编程入门:C语言指针…
· [学习辅导]二级C宏--智者的利刃,愚者…
 

关于捕获VCL没有处理的Windows消息

文章录入:admin    责任编辑:admin   2007-8-14 13:22:45  来源:考试大  点击数:
 

对于C++ Builder的程序员来说,VCL以其灵活、高效的特点令人喜爱。因为VCL是在Windows API的基础上进行了封装,同时舍弃了一些不常用的功能,所以,VCL在功能上是Windows API 的子集。 VCL提供了对大多数Windows消息的处理机制,但是对于没有处理的Windows消息呢,在需要是如何捕获呢?C++ Builder采用了消息映射标机制,通过消息映射表将特定的Windows消息于代码中的函数联系起来,当窗口捕获到消息时就会调用这个函数。
  C++ Builder消息映射表定义形式如下:
  BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER(<message> , <message structure> , <message handler>)
  END_MESSAGE_MAP(ClassName)
  其中:
  BEGIN_MESSAGE_MAP:消息映射定义起始语句
  MESSAGE_HANDLER:消息处理定义
  END_MESSAGE_MAP:消息映射定义结束语句
  ClassName:是要接受消息的类名
  message:是要截获的Windows消息
  message handler:消息处理函数名称
  message structure:是用于传递给VCL消息的结构名称,此结构里包含有处理消息时所需的全部参数,不同的消息所对应的消息结构是不同的。
  由于每一个VCL控件(无论是窗体还是按钮)都可以独立的接收Windows消息,并且进行独立的响应,所以一定要注意消息定一种的ClassName参数。
  现在举例说明消息定义、传递的应用。现在一个窗体FormMain,和2个TperformanceGraph控件(不能响应鼠标事件),现在我要对2个  TperformanceGraph控件定义鼠标单击事件,对FormMain也重定义鼠标单击事件,过程如下(假定工程文件为Message.bpr,程序文件为  main.cpp、main.h):
  源代码如下:
  //----main.h--------------------------------------------------------------
  #ifndef mainH
  #define mainH
  //----------------------------------------------------------
  #include <Classes.hpp>
  #include <Controls.hpp>
  #include <StdCtrls.hpp>
  #include <Forms.hpp>
  #include "PERFGRAP.h"
  //-----------------------------------------------------------
  class TFormMain : public TForm
  {
  __published: // IDE-managed Components
  //----2个标准TperformanceGraph控件
  TPerformanceGraph *PerformanceGraph1;
  TPerformanceGraph *PerformanceGraph2;
  TEdit *Edit2;
  TEdit *Edit1;
  void __fastcall FormCreate(TObject *Sender);
  private: // User declarations
  //----自定义的消息处理函数,其中MESSAGE可以不写
  MESSAGE void __fastcall LButtonDown(TMessage &message);
  //----用户定义的函数(处理消息,具体使用见.cpp文件)
  void __fastcall MyWndProc1(TMessage &message);
  void __fastcall MyWndProc2(TMessage &message);
  //----函数指针,用来保存2个TperformanceGraph控件的消息处理函数的指针

[1] [2] [3] 下一页

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    设为首页 - 加入收藏 - 联系站长 - 友情链接 - 版权申明
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司    版权所有

    鄂ICP备05000022号