VC++单文档程序设计(1).doc

上传人:灯火****19 文档编号:136791805 上传时间:2020-07-02 格式:DOC 页数:9 大小:35.50KB
返回 下载 相关 举报
VC++单文档程序设计(1).doc_第1页
第1页 / 共9页
VC++单文档程序设计(1).doc_第2页
第2页 / 共9页
VC++单文档程序设计(1).doc_第3页
第3页 / 共9页
VC++单文档程序设计(1).doc_第4页
第4页 / 共9页
VC++单文档程序设计(1).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《VC++单文档程序设计(1).doc》由会员分享,可在线阅读,更多相关《VC++单文档程序设计(1).doc(9页珍藏版)》请在金锄头文库上搜索。

1、 教 案2007 2008 学年第一学期主 讲 教 师课 程 名 称面向对象程序设计(VC+)课程类别专业基础课学时及学分80、4授 课 班 级使 用 教 材 VC+的使用及面向对象软件工程实例分析系(院、部)教研室(实验室) 计算机应用教研室课时授课计划课次序号: 一、课题: ch5 单文档程序编程(1)字体与绘图二、课型:讲授三、目的要求:1、 理解设备环境类CDC及其派生类的功能与使用方法。2、 理解图形设备接口GDI类的功能及使用方法。3、 学会字体设置和文本输出。4、 学会简单的图形绘制方法。四、重点、难点:重点内容:字体设置与文本输出、图形绘制。难点:正确理解CDC类和GDI类的功

2、能与使用方法。 五、教学方法及手段:采用案例教学,在实例中理解CDC类和GDI类的使用,重点讲解其中的几个功能,其他的要求学生课下逐步深入学习,达到举一反三的目的。六、参考资料:VC+实用教程(第二版) 郑阿奇编著,电子工业出版社 第8章C+面向对象程序设计 李涛编著,高等教育出版社,第10章七、作业:简答:习题5.1 , 5.2 , 5.6 设计:(1) 5.9 (2)单文档实验内容1:编写单文档应用程序,当用户双击鼠标左键时,能在客户区画一个椭圆,并用45度交叉线填充。八、授课记录:授课日期班次九、授课效果分析:十、教学进程(教学内容、教学环节及时间分配等)1、 复习单文档应用程序的特点:

3、应用程序类、主框架类、文档类、视图类文档与视图的关系2、 导入课题如何再单文档窗口中按照需要输出文本、绘制图形呢?利用CDC类和GDI接口类,它封装了绘图所需要的所有函数,是用户编写图形和文字处理程序必不可少的。3、 教学内容ch5.1 概述一、 设备环境类:1、CDC类:设备环境是Windows保存的一个数据结构,该结构包含应用程序向设备输出时所需要的信息,例如图形是在屏幕上输出还是在打印机上输出。为了让用户使用一些特殊的设备环境,MFC还提供了CDC类的派生类, CPaintDC、CClientDC、CwindowDC、 CmetaFileDC其中,前两个较常用。2、CDC类的主要功能:S

4、electObject():选择绘图对象,返回被替代的对象的指针,常用于选择画笔、画刷、字体、图片等。MoveTo():移动当前位置LineTo():从当前位置画线Ellipse():画椭圆TextOut():用当前字体在指定位置输出文本二、颜色和颜色对话框的使用绘图和显示文本时都要按照指定的(或默认的)颜色执行。常用的颜色空间右RGB和YUV两种。其中,RGB颜色空间选用红、绿、蓝三种颜色的分量配比来表示,即三基色原理。而YUV颜色空间用亮度(Y)和色差(V、U)表示。在MFC中采用RGB颜色空间。编程设置颜色的方法有两种:方法一、通过程序代码直接设置,比如可以将颜色表示为:RGB(int

5、r,int g,int b); 或 COLORREF clr;方法二、利用MFC的颜色对话框选择设置:MFC的CColorDialog类提供了颜色选择通用对话框,供用户选择颜色。具体用法: CColorDialog dlg; If(dlg.DoModal=IDOK) COLORREF myColor=dlg.GetColor();颜色对话框举例:在单文档视图中用选定的颜色输出一句话“这是我自己选的颜色!”。实现:在单文档程序的视图类的OnDraw()中添加如下代码:void CEx_colordlgView:OnDraw(CDC* pDC)CEx_colordlgDoc* pDoc = Get

6、Document();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCOLORREF myColor;CColorDialog dlg;if(dlg.DoModal()=IDOK)myColor=dlg.GetColor();pDC-SetTextColor(myColor); /设置文本的颜色值pDC-TextOut(20,50, 这是我自己选的颜色!);若改用RGB()直接设置:COLORREF myColor =RGB(0,0,250);则文字以蓝色显示。三、通用对话框使用说明:MFC提供了许多通用对话框类,比如

7、颜色设置对话框、字体设置对话框(CFontDialog)、查找替换对话框(CFindReplaceDialog)、打印对话框(CPrintDialog)、页面设置对话框(CPageSetupDialog)、文件对话框(CfileDialog,打开或保存文件)。它们的使用方法类似,课下尝试练习ch5.2 字体一、 字体的结构与字体类:1、 字体结构中包含了字体的属性,比如高度、宽度、相对页面的角度、重量(如粗体)、斜体、下划线、删除线、字符集、字体名称等。详见教材P174结构体LOGFONT的定义。熟悉或了解即可2、 字体类:Cfont3、 字体对象的使用步骤:同GDI对象,包括定义字体对象、创

8、建字体对象、选入设备环境、使用、删除、恢复等二、 创建字体对象的方法:1、 在程序中设定字体的各个属性值,利用CreateFont(); 创建字体对象。比如,5.1.3示例 P182183 要求:了解使用方法2、 调用字体设置对话框类取的用户选择的字体,保存在LOGFONT类型的变量中,然后调用CreateFontIndirect(const LOGFONT *lpLF);创建字体对象。3、 CreatePointFont(); /简单方法,只能设定字体大小三、 字体应用: 功能:在单文档程序的客户区双击鼠标,在鼠标指定位置按照设定的字体显示一句话“字体随意设,简单吧!”。其中,字体设置功能是

9、通过在主菜单中添加一个菜单项“字体设置”,单击该菜单项,打开字体设置对话框,共用户设置字体、字号等属性。单击确定后新的字体有效。 实现方法:(1) 创建单文档应用程序ex_font(2) 在视图类中添加变量:LOGFONT m_lfText; int m_xPos, m_yPos; /表示当前鼠标点击的坐标(3) 添加菜单项:在资源视图中打开Menu 资源中的IDR_MAINFRAME,在最后的空白项上右击,添加一个新菜单项的名称、ID号(ID_FONT_TEST)。(4) 在类向导中为新的菜单项添加COMMAND命令映射函数:OnFontTest() void CEx_fontView:On

10、FontTest() / TODO: Add your command handler code hereCFontDialog dlg;if(dlg.DoModal()=IDOK)dlg.GetCurrentFont(&m_lfText); /获取当前选择的字体对象(5) 在类向导中添加视图类双击鼠标的WM_LBUTTONDBLCLK消息映射函数: void CEx_fontView:OnLButtonDblClk(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default

11、m_xPos=point.x;m_yPos=point.y;Invalidate(); /调用OnDraw()重画窗口CView:OnLButtonDblClk(nFlags, point);(6) 在视图类的OnDraw()中添加代码: CFont cf; /定义字体对象cf.CreateFontIndirect(&m_lfText); /创建字体CFont * oldFont=pDC-SelectObject(&cf); /选定字体到当前设备环境pDC-TextOut(m_xPos,m_yPos, 字体随意设,简单吧!); /输出文本 cf.DeleteObject(); /删除字体对象p

12、DC-SelectObject(oldFont); /恢复原来的字体(7) 运行:单及“字体设置”,设置字体,然后双击客户区。反复进行。小结:字体的使用方法(定义字体对象、创建字体对象、选入设备环境、使用、删除、恢复等),结合实例理解并熟练掌握。 ch5.3 简单图形绘制 Windows系统为应用程序的绘图操作提供了一个图形设备接口,用于处理来自应用程序的图形函数调用。一、图像设备接口GDI MFC将各种绘图工具(如画笔、画刷、字体等)封装成GDI类,比如: CPen CBrush CFont CBitmap Cpalette CRgn 二、使用GDI对象绘图的步骤:(1) 定义一个GDI对象

13、,比如:CPen m_pen;(2) 调用该对象的成员函数创建对象,比如:m_pen.CreatePen(PS_SOLID,2,RGB(0,0,0); /创建画笔(3) 将该对象选入当前设备环境中,同时注意保存原来GDI对象。比如: CPen * pOldPen=pDC-SelectObject(&m_pen);(4) 绘图结束后,恢复当前设备环境中原来的GDI对象。比如:pDC-SelectObject(pOldPen);三、画笔的创建: CPen:CreatePen(int nPenStyle, int nWidth, COLORREF crColor) 参数1:画笔的风格,如实线、虚线、

14、点线等。 参数2:线宽 参数3:颜色四、 画刷的创建 1、/创建固定颜色的画刷BOOL CBrush:CreateSolidBrush(COLORREF crColor); 2、创建指定颜色和风格的画刷BOOL CBrush: CreateHatchBrush(int nIndex,COLORREF crColor);/ nIndex指定画刷的风格,如HS_VERTICAL为垂直阴影线 3、创建以8*8位图为模板的画刷BOOL Cbrush:CreatePatternBrush(Cbitmap * pBitmap);五、 应用GDI实现简单的绘图: 功能要求:在单文档程序主菜单中添加“画刷”、“画笔”两个菜单项,当单击“画刷”时,在客户区画一个椭圆(垂直阴影线填充);当单击“画笔”时,在客户区画实线。 实现过程:(1) 创建单文档程序ex_pen_brush(2) 在资源视图中为IDR_MAINFRAME主菜单资源添加菜单项(名称、ID:ID_PEN、ID_BRUSH)(3) 在视图类中添加一个用于识别“画笔”和“画刷”菜单项的变量: enum PEN,BRUSHm_GdiType;(4) 在视图类中添加两个菜单项的命令函数: void CEx

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号