文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C++BuilderC++ Builder中消息处理过程及应用
精品推荐
特别推荐
·菜鸟入门 认识C#中的委托和事件
·WINDOWS下的动态鼠标光标控制
热点TOP10
·在 C++ Builder中利用串行通信控件编程
·用Builder C++设计串行口COM1或COM2的读写操作
·Windows多线程间同步事件的控制方法
·用WinSock控件编写网络聊天器
·在C++ Builder中进行DirectX编程(2)
·C++ Builder VCL库函数简介
·用C++ Builder3 制作记事本
·利用C++ Builder 5.0创建用户自己的网上聊天程序
·C++ Builder 中的自画功能
·C++Builder IDE使用技巧与快捷键
·C++ Builder下数据库报表Master/Detail关系功能的实现
·WINDOWS下的动态鼠标光标控制
·菜鸟入门 认识C#中的委托和事件
·QuickReport基本知识
·C++BUILDER中一些实现界面效果的技巧
·C#动态生成树型结构的Web程序设计
·利用C++ Builder开发动画DLL
·BCB中实现全屏幕OpenGL
·C++Builder注册表编程实例详解
·利用C++Builder遍历文件目录

C++ Builder中消息处理过程及应用

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]



  C++ Builder作为一种RAD方式的程序开发工具,其全新的可视化编程环境、面向组件的开发模式无疑会大大地提高编程效率。它对繁杂的Windows 消息及API作了较全面的封装,编程者在大多数情况下不需理会Windows消息的细节,只要将心思放在组件的事件处理函数上即可。
然而,毕竟Windows操作系统是一个以消息驱动的系统,运行其上的应用程序,自然无法脱离系统之外,因此掌握并运用消息处理,对一些问题的处理会有事半功倍的效果。

    尽管C++ Builder的VCL控件封装了大多数常用的消息,C++ Builder所提供的事件处理能力也具备了相当程度的完备性,但当处理C++ Builder 未定义的Windows消息或自定义消息时,掌握C++ Builder 的内部消息处理机制还是十分必要的。下面,从Windows 操作系统消息驱动机制开始,进而探讨C++ Builder的VCL控件中消息的封装、传递和处理机制,最后以新增消息处理过程的应用实例作为对所讲内容的验证和实践。

  一、Windows 消息驱动机制

  Windows是以消息驱动的操作系统,Windows 消息提供了应用程序与应用程序以及应用程序与Windows系统之间进行通讯的手段。

  Windows 中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。

  消息循环代码是应用程序中主函数winmain ( )中类似如下的程序段:

  while(GetMessage(&&msg,NULL,NULL,NULL))

  { //从消息队列中取得消息

  TranslateMessage(&&msg);

  //检索并生成字符消息WM_CHAR

  DispatchMessage(&&msg);

  //将消息发送给相应的窗口函数

   }

  由此可见,所谓“消息循环”,实际是程序循环。

  Windows 应用程序创建的每个窗口都在系统核心注册一个相应的窗口函数,窗口函数程序代码形式上是一个巨大的switch 语句,用以处理由消息循环发送到该窗口的消息,窗口函数由Windows 采用消息驱动的形式直接调用,而不是由应用程序显示调用的,窗口函数处理完消息后又将控制权返回给Windows。

  系统消息队列、应用程序队列、消息循环和窗口函数之间的关系如图1所示。

  
C++ Builder中消息处理过程及应用(图一)

  二、C++ Builder 中的消息处理

  有了以上Windows 系统消息驱动模式程序设计的认识,下面分析一下C++ Builder中消息处理是如何封装、实现的。

   Windows 程序框架,包括一些初始化、消息循环代码等,在类 Application中封装、实现。每一个用C++ Builder 编写的Windows GUI 应用程序,大部分缺省生成如下代码:

  WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

  //Windows 应用程序主函数
[1] [2] 下一页 




上一篇:在 C++ Builder中利用串行通信控件编程

下一篇:使用C++Builder制作提取图标程序

C++ Builder中消息处理过程及应用 相关文章:
·无线攻防:破解WEP密钥过程全解
·用SOFTICE破解WINZIP的过程
·轻松做画家!用Photoshop把照片处理成逼真的素描画
·Photoshop将肖像照片处理为超酷个性海报
·图象处理中的边缘检测------canny算子
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·Windows2000/XP启动过程详解
·ASP.NET购物车的实现及结算处理
·每周电脑应用技巧荟萃
·英文字体创意设计及应用作品欣赏
C++ Builder中消息处理过程及应用 相关软件:
·powerbuilder10.0中文版
·中文版 AutoCAD2004 应用实例与技巧
·PowerBuilder 8.0 企业正式版
·photoshop数码照片处理与特效制作
·Excel应用宝典
·嵌入式系统应用开发技术 wmv 视频教程
·CorelDRAW9应用速成
·注册表实例应用视频教程swf
·AUTOCAD 2002机械设计应用与实例
·数码照片后期处理V1.0 (exe电子书)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot