- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.4 绘图基本步骤 (1) 获取设备环境 (2) 设置逻辑坐标及逻辑原点 (3) 设置物理坐标及其设备原点 (4) 初始化绘图工具 (5) 调用绘图函数绘图 (3) 释放设备环境结束绘图 6.5 绘图示例 在指定标签控件中绘制学生成绩直方图 向界面中添加标签控件 设置标签ID属性为:IDC_STATIC_DRAW (2)获取标签物理的高度和宽度 CRect rc; CWnd* pWDraw=GetDlgItem(IDC_STATIC_DRAW); pWDraw-GetClientRect(rc); (3) 获取标签控件的绘图环境 CStatic* pDraw= (CStatic*)GetDlgItem(IDC_STATIC_DRAW); CDC* pDC1=pDraw-GetDC(); (4) 设置坐标的映射模式 pDC1-SetMapMode(MM_ISOTROPIC); (5) 设置逻辑坐标 pDC1-SetWindowExt(200,200); pDC1-SetWindowOrg(0,0); (6)设置物理坐标 pDC1-SetViewportExt(rc.right,-rc.bottom); pDC1-SetViewportOrg(0,rc.bottom); (7)创建画笔 HPEN pen1= CreatePen(PS_SOLID,1,RGB(0,128,255)); pDC1-SelectObject(pen1); pDraw1-UpdateWindow(); (8) 绘制坐标线 for(i=0;i=10;i++) { pDC1-MoveTo(0,i*20); pDC1-LineTo(200,i*20); } for(i=0;i=10;i++) { pDC1-MoveTo(i*20,0); pDC1-LineTo(i*20,200); } 6.6 绘制复杂图形 (1)画弧 CDC::Arc ( int x1,int y1, //指定边框矩形左上角的逻辑坐标 int x2,int y2, // 指定边框矩形右下角的逻辑坐标 int x3,int y3, // 椭圆弧起始径线的确定点坐标 int x4,int y4 // 椭圆弧终止径线的确定点坐标 ); 3. 实现步骤(P119) 向用户数据类的头文件中添加串行化函数原型 在用户数据类的实现文件中添加串行化操作 在文档类的串行化函数中实现对用户数据类对象数组的序列化操作(P120) 4.示例(P119~P120) 4.7 使用集合类 集合类实现对用户数据的有效管理(P124) (1)动态数组 CArray (2)动态链表 CList (3)哈希映射表 CMap 1. 集合类特点 CArray 提供一个大小可根据实际使用调整的有序动态数组 CList 提供一个有序的非索引的双向链表 CMap 是一个键值对的集合,适合高效检索 2. 模板类集合 模板集合类提供了较好的类型安全性,即使用模板类创建类型安全的集合类 。 CTypedPtrMap CTypedPtrList CTypedPtrArray 模板类 CMap CList CArray 非模板类 映射 链表 数组 3. 链式存储用户数据(P127) (1) 向标准预编译头文件中添加模板类库 #include afxtempl.h (2) 在文档类头文件中定义模板链表类对象 CTypedPtrListCObList, CStudent m_Student; (3)在视图类实现文件中实现用户数据的链式存储 4. 示例(P128~131) 关键提示: 定义POSITION 实例变量,获取链表头节点,尾节点及当前节点的位置(指针) 例如: POSITION p1,p2; … p1=pDoc-m_Student.getHeadPosition(); 实例:映射表的使用(P134~P138) 4.8 用户数据类的消息映射 为了使用户数据类能直接响应外部消息,需要在文档类/视图类的消息路由中添加用户数据类对象。 具体方法:(P141~P143) 4.10 综合实例 (P140~P160) 第5讲 文档/视图类的结合 5.1 视图类 为了体现多种不同的视图效果,MFC提供了视图模板供使用。 实现方法 (P164) 提供包含树状控件的视图,类似于Windows资源管理器的左侧窗口 CTreeView 提供包含列表控件的视图,类似于Windows资源管理器的右侧窗口 CListView 提供富文本编辑控件的视图,除了包含CEditView功能之外,
文档评论(0)