MFC程序设计:菜单与消息映射解析

需积分: 49 122 下载量 117 浏览量 更新于2024-08-10 收藏 1.02MB PDF 举报
"这篇教程介绍了如何在VC++ MFC环境中使用菜单,强调了菜单作为用户交互的一种简单而有效的方法,并提供了基本的代码示例来解释消息映射的工作原理。" 在MFC(Microsoft Foundation Classes)框架中,使用菜单是创建用户界面的一个常见做法。菜单允许用户通过点击选项来执行特定的操作,提供了直观且易于使用的交互方式。通常,菜单项的定义存储在资源文件中,开发者可以使用Visual Studio的资源编辑器进行设计。 在描述中提到,尽管不强制要求,但建议在菜单属性对话框的“提示”(Prompt)字段输入文字。这样做有助于MFC在状态栏或工具条存在时提供相应的用户帮助信息。提示文字的格式应为“状态栏出说明\n工具条提示”,其中`\n`用于区分状态栏和工具条的显示文本。 提供的代码片段展示了如何在MFC应用中处理菜单事件。`BEGIN_MESSAGE_MAP` 和 `END_MESSAGE_MAP` 宏用于定义消息映射,它将Windows消息与成员函数关联起来。例如,`ON_COMMAND(ID_FONT_DROPDOWN, DoNothing)` 映射了ID为`ID_FONT_DROPDOWN`的菜单项到`DoNothing`函数,当用户选择这个菜单项时,系统会调用这个函数。 `newWndProc` 是一个窗口过程函数,处理窗口接收的各种消息。`WM_COMMAND` 消息表示用户在菜单、快捷键或其他控件上进行了操作。`HIWORD(wParam)` 用于获取消息的高字节,这里用来判断是否是`ID_FONT_DROPDOWN`事件。 MFC开发的通用方法部分,列举了针对不同需求的开发策略: 1. 对于需要读写文件并有简单输入输出的应用,可以选择单文档视结构(SDI)。 2. 对于交互性简单的应用,基于对话框的窗口可能更合适,如有简单文件读写需求,可以使用`CFile`类。 3. 对于交互性较强且文件操作复杂的应用,可以采用基于`CFormView`的SDI。 4. 利用对话框获取用户输入,随着熟练度提升,可以考虑使用就地编辑功能。 5. 当不强求多文档支持时,可以使用单文档多视结构,通过分隔条实现。 6. 如果需要在多个文档间传递数据,那么多文档视结构(MDI)是理想选择。 7. 学习使用子窗口并封装多个控件,以增强功能性和模块化。 通过以上内容,初学者可以了解到MFC中菜单的使用、消息映射的概念以及不同类型的MFC应用开发策略。这些基础知识对于理解MFC的开发流程和设计模式至关重要。