扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:adding 来源:yesky 2007年11月16日
关键字: Visual C++.NET 编程 讲座
程序中各用户类的关联
在上一讲中,我们使用MFC应用程序向导创建一个单文档项目TextViewer。现在,我们打开该项目。可以看出,向导为TextViewer项目创建了以下几个类:
应用程序类CTextViewerApp,应用程序必须的运行入口,在上一讲已经讨论过。
主框架窗口类CMainFrame,用来负责窗口的标题栏、菜单、工具栏及状态栏等界面元素的操作。
文档类CTextViewerDoc,用来负责文档数据的读取和保存
视图类CTextViewerView类,用来显示文档显示,并可响应各种类型的输入(例如键盘输入)以及实现打印和打印预览等。
还有一个对话框类CAboutDlg,用来显示该应用程序的版本信息,是一个"关于"对话框。
需要说明的是,Visual C++ .NET将各个类的声明保存在头文件中,即以.h为扩展名,而将类的实现代码保存在以.cpp为扩展名的实现文件中。
那么,在MFC中上述的主框架窗口类、文档类和视图类的关系是怎样呢?我们来看一下。
将解决方案管理器切换到"类视图",展开CTextViewerApp类的所有节点,双击"InitInstance( void )",打开该函数代码。由于Visual C++ .NET的代码注释是中文的,因此我们这里仅给出如图1所示的代码。
图1 InitInstance函数中的部分代码
代码中,CSingleDocTemplate是从CDocTemplate派生的单文档类,它协调了文档窗口、文档和视图的关系,并把三者联系起来。该类的构造函数需要指定四个参数,分别为表示菜单和加速键等的资源ID号以及三个由宏RUNTIME_CLASS指定的CRuntimeClass结构对象指针,它们分别是程序的文档类、框架窗口类和视图类的结构指针。
CRuntimeClass结构反映一个运行时类的信息,通常用宏RUNTIME_CLASS来获取一个类的CRuntimeClass结构指针。Visual C++借助CRuntimeClass类结构能在应用程序运行过程中获得该类对象及其基类的相关信息,从而可以实现运行时类型检查(Run Time Type Inspection,RTTI)。
AddDocTemplate用来将指定的单文档模板或多文档模板指针添加到程序所包含内部的文档模板指针列表中。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者