- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC编程之文档视图结构应用程序
第2章 文档/视图结构应用程序
2.0 知识要点
1. 文档/视图结构的思想是将数据的管理与显示分离,其中文档用于管理应用程序的数据,而视图是用户界面,用于显示、打印文档中的数据,并管理与用户的交互。
2. SDI具有文档/视图结构的应用程序框架,该框架包括应用程序类、窗口框架类、文档类和视图类,编程的任务是在文档类和视图类中添加适当的代码。其中文档类中一个重要的成员函数是OnNewDocument(),用户在此添加代码完成对数据的初始化;而视图类中最重要的成员函数是OnDraw(),通过在该函数中添加代码实现窗口内容的输出。
3. 通过介绍几种SDI结构的典型应用程序来了解其结构及设计方法,典型应用包括:
?? 利用画笔、画刷等工具及位图处理的方法实现文字和图形的输出。
?? 利用定时器控件制作动画程序。
?? 对鼠标和键盘进行编程的基本方法。
?? 文件、字体、颜色等几种通用对话框的使用方法及自定义对话框的设计、调用方法。
?? 菜单的设计方法。
2.1 文档/视图结构
SDI 应用程序由 AppWizard 创建好后,即使没有编写一行代码,仍然可以运行,并且具有一个标准 Windows应用程序所需要的组成成份,程序员的工作就是往这个框架添加必要的代码。以下通过一个简单实例说明文档/视图结构应用程序的创建过程。
【例2-1】 创建一个如图所示的应用程序,在窗口中显示一个矩形框,框中显示“同舟共济 自强不息”。
假定本例的工程名为 TEST ,程序创建过程如下:
(1)利用 AppWizard 创建一个 SDI 应用程序框架。
(2)文档类是存放数据的主要地方,本例在其中说明一个存放矩形框数据的 CRect 类对象 r 和一个存放字符串的 CString 对象s,方法为:
在工作区的“ ClassView ”中,双击 CTESTDoc 类,在该类代码中添加如下代码:
public:
CRect r;
CString s;
说明:
CRect 是 MFC 定义的一个类,有 4 个数据成员: left 、 top 、 right 和 bottom 。 (left, top) 和( right, bottom )分别表示一个矩形左上角坐标和右下角坐标。
(3)在文档类的成员函数 OnNewDocument() 中完成数据成员的初始化。方法为:
在工作区的 ClassView 中展开 CTESTDoc 类,找到其成员函数 OnNewDocument() ,在其中添加代码:
BOOL CTESTDoc::OnNewDocument()
{ if (!Cdocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
r=CRect(100,60,20,100);
s=”同舟共济 自强不息”;
return TRUE;
}
(4)在工作区的“ Class View ”中展开视图类 CTESTView 类,找到其成员函数 OnDraw() ,添加输出矩形框和文字的代码:
void CTESTView::OnDraw(CDC* pDC)
{ CTESTDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC-Rectangle(pDoc-r);
pDC-TextOut(110,70,pDoc-s);
}
说明:
GetDocument() 是视图类的一个重要成员函数,其返回值是指向当前文档的指针。视图类中的成员函数通过它访问文档类的公有数据成员。
函数 OnDraw() 是实现输出的关键函数,绝大多数的显示工作都是在这个函数中完成的。其参数 pDC 指向窗口中央的客户区对象,程序使用了客户区对象的 Rectangle 和 TextOut 函数绘制矩形和输出文字。
(5)运行程序,结果如图所示。
SDI 应用程序框架
1.应用程序类
每个应用程序类必须从 CWinApp 派生出自己的应用程序类,该类封装了包括初始化、运行和结束的整个过程,其名称是 AppWizard 根据工程名称自动命名的,规则如下:
()如果工程名符合标识符的命名规则,则应用程序类名由字母 C 、工程名和 App 三部分组成。例如,工程名为 TEST ,则应
您可能关注的文档
- 2015年应急疏散演练讲稿.docx
- 2015年市级课题立项申报书新.doc
- 2015年工会主要工作.doc
- 2015年度建筑工程管理与实务精讲-单位工程施工组织设计.docx
- 2015年年中护理部质控总结MicrosoftWord文档.doc
- 2015年度王庄煤矿评先选优工作增加事项.doc
- 2015年故事营销.doc
- 2015年新版pep六下单词句子语法归纳总结.doc
- 2015年春季学期教学教研工作计划.doc
- 2015年江苏高考作文评析及优秀作文赏读.doc
- 《JJF 2132-2024荧光紫外灯人工气候老化试验装置校准规范:辐射照度参数》.pdf
- JJF 2120-2024轮速传感器校准规范.pdf
- 计量规程规范 JJF 2120-2024轮速传感器校准规范.pdf
- 《JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数》.pdf
- JJF 2129-2024钙钛矿太阳电池校准规范:光电性能参数.pdf
- 《JJF 2120-2024轮速传感器校准规范》.pdf
- JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
- JJF 2116-2024特定蛋白分析仪校准规范.pdf
- 《JJF 2116-2024特定蛋白分析仪校准规范》.pdf
- 计量规程规范 JJF 2117-2024沥青混合料理论最大相对密度仪校准规范.pdf
文档评论(0)