vc++_第5章_图形绘制

vc++_第5章_图形绘制

ID:17821358

大小:1.43 MB

页数:55页

时间:2018-09-06

vc++_第5章_图形绘制_第1页
vc++_第5章_图形绘制_第2页
vc++_第5章_图形绘制_第3页
vc++_第5章_图形绘制_第4页
vc++_第5章_图形绘制_第5页
资源描述:

《vc++_第5章_图形绘制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章图形绘制在VisualC++6.0中,掌握图形程序设计方法是非常重要的。因为图形在任何一个可视化工程项目中都是不可缺少的。CDC(设备环境)类封装了图形绘制所需要的各种操作。本章我们将通过实际例子和较详细的阐述,来了解和掌握如何使用设备环境类(CDC)及图形设备接口(GDI)进行图形绘制。5.1设备环境与设备环境类(CDC)5.1.1设备环境设备环境也称设备上下文(DeviceContext,简称DC),是计算机物理设备的代表,也是图形设备接口的主要组成部分。由于Windows是一个与设备无关的操作系统,即Window

2、s不允许直接访问硬件,如果用户想将文本和图形绘制到显示器或其它设备中去,必须通过“设备环境”这个抽象层与硬件进行通信,设备上下文对象的作用就是实现Windows的设备无关性,任何向屏幕上进行输出的功能都要间接地通过它来完成。设备上下文是Windows的一种数据结构,它包含了有关如显示器或打印机等设备的绘图属性信息。所有绘画都是通过设备上下文对象来实现的,该对象封装了Windows的画线、图形和文本的API函数。设备上下文允许在Windows下独立于设备的绘画。设备上下文不仅能够被用来在屏幕上绘画,它也可以将绘画输出到打印机和

3、图元文件中。5.1.2设备环境类设备环境类CDC直接继承于CObject类,该类定义了一类设备对象。CDC对象提供了非常多的成员函数,与设备环境的显示器、打印机等一起工作。例如,如果要在显示器等设备上绘制图形,我们可以用MFC提供的设备环境类CDC类,因为CDC类中包含了绘图所需要的所有成员函数。同时。MFC还提供了以下几个CDC的派生类:1、CPaintDC类此类比较特殊,它的构造函数和析构函数都是针对OnPaint进行的。用户一旦获得相关的CDC指针,就可以将它当做任何设备环境(包括屏幕、打印机)指针来使用,CPaint

4、DC类的构造函数会自动调用BeginPaint,而它的析构函数则会自动调用EndPaint。2、CClientDC和CWindowDC类CClientDC只能在窗口的客户区(不包括边框、工具条、标题栏、滚动条、菜单栏以及状态栏)进行绘图,点(0,0)通常指的是客户区的左上角。其构造函数调用GetDC,析构函数调用ReleaseDC函数。CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。其构造函数调用GetWindowDC,析构函数调用ReleaseDC函数。3、CMetaFileDC类封装了在

5、一个Windows图元文件中绘图的方法。图元文件是一系列与设备无关的图片的集合,由于它对图像的保存比像素更精确,因而往往在要求较高的场合下使用,例如:AutoCAD的图像保存等。目前的Windows已使用增强格式(enhanced-format)55的32位图元文件来进行操作。设备环境类CDC及其派生类如图5.1.1所示。CDCCClientDCCPaintDCCWindowDC图5.1.1CDC与其子类继承图5.2绘图程序5.2.1CDC基类CDC类是其它DC类的基类,CDC类封装了使用设备环境的各种图形设备接口(GDI)

6、函数,它用于定义一个设备环境对象,并提供了在显示器、打印机和窗口的客户区域上画图的方法。1、在视图类的OnDraw()函数中绘图在视图类的OnDraw函数中绘图时,直接使用OnDraw()函数中的CDC形参指针pDC,调用它的函数进行绘图:例5.1绘制矩形与文本(1)创建一个单文档应用程序,名为:显示绘图(2)在视图类的实现文件“显示绘图View.cpp”的OnDraw函数中加如下代码:voidCMyView::OnDraw(CDC*pDC){CMyDoc*pDoc=GetDocument();ASSERT_VALID(pD

7、oc);图5.2.1绘制矩形和文本//选择画刷,浅灰色画刷,见表5.2pDC->SelectStockObject(LTGRAY_BRUSH);CRectrect(10,10,200,70);//定义一个矩形pDC->Rectangle(rect);//绘制一个矩形pDC->TextOut(20,80,"我们会编制图形程序了!");//绘制文本pDC->TextOut(20,100,”努力学好VisualC++!”);}3)编译运行,结果如图5.2.1所示。说明:SelectStockObject()该函数检索预定义的备用笔

8、、刷子、字体或者调色板的句柄。参数:LTGRAY_BRUSH:亮灰色画笔;BLACK_BRUSH黑色画笔;NULL_BRUSH:空画笔(相当于HOLLOW_BRUSH); WHITE_BRUSH:白色画笔;BLACK_PEN:黑色钢笔;......552、在视图类的一般函数中绘图例5.2在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。