- 2
- 0
- 约5.74千字
- 约 77页
- 2016-10-26 发布于广东
- 举报
第3章菜单与加速键 菜单是Windows程序界面的重要元素,程序的各种操作和功能都是通过单击菜单项完成的。 一个设计合理、功能完善的菜单能够极大地方便用户的使用。加速键是菜单的辅助功能,程序使用者可以通过快捷键直接访问常用的菜单选项。 本章就介绍在程序中创建菜单和加速键的方法。 3.1 消息与事件 Windows应用程序是通过消息驱动的,因此消息和事件是Windows程序设计的核心概念。 本节将简要介绍消息和事件的处理过程,为以后的编程实践打下基础。 3.1.1 事件驱动机制 Windows作为一个以图形界面为主的操作系统,主要面向与用户的交互。 这个特点决定了在Windows上面运行的程序大部分都要以等待用户输入,并根据用户输入做出相应的操作为主要运行方式。 因此,用户输入是Windows系统中消息和事件的一个主要来源。 根据用户输入做出相应的操作,这个过程称为消息处理的过程。 同时Windows系统也将系统和程序,程序和程序之间的相互作用,抽象为另外一类消息和事件。 这样程序在运行中与系统环境的相互作用就体现为接收消息,然后对消息进行处理。 这就是事件驱动机制的主要内涵。 Windows下的应用程序的主要工作是进行消息的循环处理,通过循环等待消息的到来和事件的发生,然后对不同的消息和事件运行相关的代码,完成相应的操作。 3.1.2 消息和消息映射 Windows系统中的程序大部分都是通过消息和事件驱动的。 为了完成各种功能,Windows提供了大量的消息。 这些消息主要有以下3种类型。 ● 标准Windows消息: ● 控件通知消息: ● 命令消息: 上面的这3类消息在MFC中有统一的处理框架,即消息映射机制。 消息映射机制将消息及其处理函数表示成一一对应的表,并对这张表进行分析处理。 CCmdTarget类的派生类用于存放消息映射机制,使用消息映射必须在源程序中加入以下两方面内容。 (1)在类的头文件中加入如下语句。 DECLARE_MESSAGE_MAP() (2)在类的实现文件中加入消息映射表。 BEGIN_MESSAGE_MAP(类名, 父类名) … 消息映射表项 … END_MESSAGE_MAP() 对于标准Windows消息,在CWnd类中已经预定义了默认的处理函数,有确定的函数名,一般以On开头,以消息名为函数名的后半部分,例如,WM_PAINT消息的处理函数为OnPaint(),WM_CREATE消息处理函数是OnCreate()。 这些预定义的消息处理函数根据消息的不同有不同的参数和返回值。 对于控件通知消息和命令消息,一般没有默认的消息处理函数,可以由用户自定义。 MFC建议这类函数命名应遵循一些约定,一般以On开头,函数名中应包含该消息的简要说明,方便阅读代码。 ClassWizard在创建这类消息处理函数时会提供一个建议的函数名,一般无需修改。 例如OnFileOpen()函数表明处理命令标识符ID_FILE_OPEN的命令消息。 本章和后续章节都将主要利用ClassWizard为程序添加消息处理函数。 因此下面简要介绍ClassWizard对话框,如图3-1所示。 在IDE主菜单栏中选择“View|ClassWizard”菜单命令,或者在开发环境的界面中直接按快捷键Ctrl+W,即可打开“MFC ClassWizard”对话框。 选择“Message Maps”的选项卡,即可进行编辑消息映射的设置。 3.1.3 消息处理过程 在Window
您可能关注的文档
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第3章 顺序结构程序设计.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第4章 选择结构程序设计.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第5章 循环结构程序设计.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第6章 数组.ppt
- 新Visual Basic语言程序设计及实验教程 电子教案 周建丽 第7章 过程.ppt
- 新Visual Basic语言程序设计教程 电子教案 周建丽 Visual Basic语言程序设计教程 教学课件 周建丽 6166.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch1.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch2.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch3.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch4.ppt
原创力文档

文档评论(0)