您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > Visual C++开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

应用MFC开发高级应用程序
2001-11-22· ·苟建兵 ··pcvc.net

上一页  1 2 3 4 5 6 7 8 9 10 11 12 13  下一页


  六、使用自定义消息

  1、MFC的消息映射机制

  Windows是一个典型的消息驱动的操作系统,程序的运行是靠对各种消息的响应来实现的,这些消息的来源非常广泛,既包括Windows系统本身,如WM_CLOSE、WM_PAINT、WM_CREATE和WM_TIMER等常用消息,又包括用户菜单选择、键盘加速键以及工具条和对话框按钮等等,如果应用程序要与其它程序协同工作,那么消息的来源还包括其它应用程序发送的消息,串行口和并行口等硬件发送的消息等等。总之,Windows程序的开发是围绕着对众多消息的合理响应和实现来实现程序的各种功能的。使用过C语言来开发Windows程序的人都知道,在Windows程序的窗口回调函数中需要安排Switch语句来响应大量的消息,同时由于消息的间断性使得不同的消息响应之间信息的传递是通过大量的全局变量或者静态数据来实现的。

  人们常用的两种类库OWL和MFC都提供了消息映射机制用以加速开发速度,使用者只需要按规定定义好对应消息的处理函数自身即可,至于实际调用由类库本身所提供的机制进行,或采用虚函数,或采用消息映射宏。为了有效节约内存,MFC并不大量采用虚函数机制,而是采用宏来将特定的消息映射到派生类中的响应成员函数。这种机制不但适用于Windows自身的140条消息,而且适用于菜单命令消息和按钮控制消息。MFC提供的消息映射机制是非常强大的,它允许在类的各个层次上对消息进行控制,而不简单的局限于消息产生者本身。在应用程序接收到窗口命令时,MFC将按如下次序寻找相应的消息控制函数:

  SDI应用

  MDI应用

  视口

  视口

  文档

  文档

  SDI主框架

  MDI子框架

  应用

  MDI主框架

  应用

  大多数应用对每一个命令通常都只有一个特定的命令控制函数,而这个命令控制函数也只属于某一特定的类,但是如果在应用中对同一消息有多个命令控制函数,那么只有优先级较高的命令控制函数才会被调用。为了简化对常用命令的处理,MFC在基类中提供并实现了许多消息映射的入口,如打印命令,打印预览命令,退出命令以及联机帮助命令等,这样在派生类中就继承了所有的基类中的消息映射函数,从而可以大大简化编程。如果我们要在自己派生类中实现对消息的控制,那么必须在派生类中加上相应的控制函数和映射入口。

上一页  1 2 3 4 5 6 7 8 9 10 11 12 13  下一页

【责任编辑:  】
【发表评论】【关闭窗口】
■ 相关内容
 MFC文件浏览程序中改变文件读写对话框样式
 COM中的可连接对象与连接点机制及其MFC程序实现
 在VC++6.0中用MFC进行COM编程
 在VC++中读写INI文件
 VC编程中如何在视图区显示工具提示
 金山WPS走出微软
 用VC++制作实时教学工程
 谈对话框的动画弹出和动画消隐
 VC编程实现IE风格的界面
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!