MFC (Microsoft Foundation Classes) 是微软提供的一套C++库,用于简化Windows应用程序的开发。在VC6.0中,MFC提供了AppWizard工具来帮助开发者快速创建应用程序框架。本教程将指导你如何使用VC6.0和MFC创建一个基本的单文档界面(SDI)应用程序,以及如何进行调试。
实验目标是创建一个简单的应用程序,当用户在窗口的客户区点击鼠标左键或右键时,会显示一个对话框显示点击次数。这一过程涉及到了MFC的消息映射机制,它允许你处理Windows消息,如WM_LBUTTONDOWN和WM_RBUTTONDOWN,分别对应鼠标左键和右键的按下事件。此外,还需要处理WM_TIMER消息来实现定时更新点击计数的功能。
实验步骤包括:
1. 创建一个专门的工作文件夹,用于存放项目文件,并在VC6.0中使用MFC AppWizard创建一个名为Ex_SDI的SDI项目。选择"单个文档应用程序"模板,将项目保存到指定文件夹。
2. 在CEx_SDIView类中添加两个整型成员变量m_nLButton和m_nRButton,它们将用于存储鼠标点击次数。同时在类的构造函数中初始化这些变量。
3. 对CEx_SDIView类进行消息映射,包括WM_LBUTTONDOWN、WM_RBUTTONDOWN和WM_TIMER。分别编写处理这些消息的函数,增加相应的代码来记录和显示点击次数。例如,当接收到WM_LBUTTONDOWN或WM_RBUTTONDOWN时,相应的计数器加1;当接收到WM_TIMER消息时,检查是否有新的点击并更新对话框的显示。
4. 编译并运行程序,确保功能正确无误。在程序中设置断点,以便进行调试。
5. 使用VC6.0的调试器进行程序调试,了解程序的执行流程。可以使用Step Into、Step Over、Step Out和Run to Cursor等调试命令来控制程序执行。通过调试窗口观察和修改变量的值,以验证程序行为。
实验还提出了思考题,讨论如何向类中添加成员函数,以及在不同类中添加相同消息映射的后果。添加成员函数通常通过右键点击类名,然后选择"添加成员函数"来完成。而在Ex_SDI中,如果在CMainFrame类和CEx_SDIView类都添加了WM_LBUTTONDOWN消息映射,但只有CEx_SDIView的映射函数会被执行,因为消息会先被传递给视图类,只有当视图类不处理时,才会继续传递给框架类。如果在CMainFrame类中试图访问CEx_SDIView的私有或保护成员(如m_nLButton),编译器会报错,因为这些成员在CMainFrame类中是不可见的。
通过这个实验,你可以学习到如何在VC6.0中使用MFC创建基本的应用程序,理解消息映射的工作原理,以及如何利用调试器来分析和改进代码。这为后续更复杂的MFC应用程序开发奠定了基础。