MFC练习小结:单文本文档

这篇博客总结了MFC单文本文档(SDI)的学习,包括CAboutDlg、CMainFrame、CApp、CDoc和CView等关键类的派生关系及作用。讨论了CDocument的UpdateAllViews()、OnNewDocument()、OnOpenDocument()和CView的OnDraw()、GetDocument()、OnUpdate()、OnPrint()等重要函数的功能,阐述了它们在文档视图通信中的角色。
摘要由CSDN通过智能技术生成

在练习了前面两个实验以后,略微对MFC的单文本文档(SDI)有所了解,现总结如下:

1、生成一个单文本文档会有CAboutDlg帮助类、CMainFrame主框架类、C"文件名"App应用类、C"文件名"Doc文档类、C"文件名"View视类等基本的几大类。

用→表示派生的话,有如下的关系

CFrameWndCMainFrame,主程序窗口

CWinAppCSDIApp,程序初始化与收尾工作

CDocumentCSDIDoc,存放程序数据并在磁盘上读写

CView→CSDIView,程序数据显示并处理用户输入

//下为附加的一些介绍,根据需要在应用向导第六步进行选择
//CEditView,文本编辑
//CScrollView,视察滚动条
//CRecordView,数据库存取
//CHtmlView,视察显示超文本
//CFormView,视察放置控件
//CTreeView,以显示树状数据
//CListView,显示列表数据
//CRichEditView,支持更多的文本编辑,支持RPT


上述四个基本类相互调用公有函数和发送消息进行通信程序任何位置都可使用全局函数AfxGetApp()取得指向应用类对象指针,通过应用类的GetMainWnd()得到主框架窗口指针,在视类中使用GetDocument()取得文档类对象指针,如:

CSDIApp *pApp = (CSDIApp*) AfxGetApp();
CMainFrame *pMainFrame = (CMainFrame*) pApp->GetMainWnd();
CSDIDoc *pDoc = GetDocument();

 

2、文档类和视类中的主要函数

①CDocument类中的主要函数

UpDateAllviews(),一个文档对应多个视,可用此函数通知每个与此相关的视,表示此文档已经被修改,每个视调用自己的OnUpdate()进行更新;

OnNewDocument(),当使用“新建”命令时,应用程序调用此函数,并通过它调用DeleteContent()使文档清空。在单文本文档中,应用程序用此函数重新初始化现有文档;而在多文本文档中,应用程序框架将建立一个新的文档并调用此函数进行初始化;

OnOpenDocument(),当使用“打开”命令时,应用程序调用此函数打开指定文件,并通过它调用DeleteContent()进行清空。在单文本文档与多文本文档当中,类似于上述OnNewDocument();

②CView类中的主要函数

OnDraw(),应用程序调用此函数进行屏幕显示打印打印预览,当视的窗口重画时,也要调用它;

GetDocument(),通过此函数获得指向当前视所对应的文档类指针,使用这个指针调用文档类的公有成员

OnUpdate(),视类对应的文档数据被修改后,调用此函数进行更新,此函数也被文档类中的UpDateAllviews()调用;

OnPrint(),应用程序在打印和打印预览时将调用此函数。

终于摸清一点眉目了,好辛苦啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值