欢迎来到天天文库
浏览记录
ID:40239582
大小:3.58 MB
页数:61页
时间:2019-07-28
《Visual C++程序设计教程 段智毅 第9章 文字和图形处理技术 》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章文字和图形处理技术【学习目标】与其他许多编程工具相比,VisualC++在图形、图像的处理方面更胜一筹。在编写Windows风格的程序过程中,载入位图或者创建位图都是程序员经常使用的方法,只有熟练掌握了位图的使用方法,才能编写出标准且美观的应用程序。本章中将介绍与VisualC++相关的图形、图像处理知识,对绘图所需要的类进行充分讲解,对于各种文本和位图的操作进行细致地介绍,并通过具体的实例来对绘图函数的用法进行详细的说明。通过学习本章,读者可以达到以下学习目的:l了解GDI对象和设备上下文l掌握各种样式文本的输出l掌握各种
2、图形的绘制l掌握对图形进行颜色填充l掌握图像的绘制l掌握图像在窗口中的一些操作课件制作人:宋坤【学习导航】文本和图形图像处理技术在应用程序的许多方面被广泛使用。例如,设计应用程序界面、设计第三方控件、设计多媒体应用程序等。本章从文本输出、图形绘制和图像显示3个方面介绍了其在VisualC++中的实现。本章在书中的学习位置如图9-1所示。课件制作人:宋坤【知识框架】本章学习内容知识框架如图9-2所示。课件制作人:宋坤本章目录9.1GDI概述9.2设备上下文介绍9.3GDI对象9.4文本输出9.5绘制图形9.6绘制图像9.7课后习题√
3、√√√√√√课件制作人:宋坤9.1GDI概述以往许多MSDOS程序采用直接向视频存储区或打印机端口输送数据,这种做法不利之处是需要各种显示卡(低分辨率彩色图形显示卡、加强图形显示卡以及图像图形阵)或打印机驱动程序,支持所有这些设备意味着要用大量的编程来包含这些驱动程序(为每一个设备编写不同的代码)。为了减轻开发程序的难度,Windows提供了一个抽象的接口,图形设备接口GraphicsDeviceInterface(GDI)。另外,Windows还提供了各种显示卡及打印机的驱动程序,这样在写程序时就可以不必关心显示卡和打印机的类型
4、,简化了程序开发的难度。其实,GDI是微软公司提供的一组绘图函数,通常称之为GDI函数。使用这些函数可以绘制各种图形。本章将介绍有关GDI的相关知识。课件制作人:宋坤9.2设备上下文介绍设备上下文的英文全称是DeviceContext,简称为DC。设备上下文是用来绘制图形的逻辑设备,编程人员可以在该设备上绘制直线、曲线和立方体等各式各样的几何图案及在设备上输出文字。在开发应用程序时往往要在输出设备上输出程序的运行结果。输出设备通常指的是显示器和打印机,但程序员需要了解显示器和打印机的特性才能将结果显示在输出设备上,而了解显示器和打
5、印机特性这个过程会花去程序员的大部分时间,为减少开发应用程序的开发时间及开发难度,就提出设备上下文这个概念。通过使用设备上下文,编程人员可以不必关心输出设备的具体特性,直接绘制最终的结果,而余下的工作都交给系统来完成。在Windows应用程序中,每个窗口都关联有设备上下文,用户只要获得了窗口的设备上下文,就可以在窗口中绘制各种文本、图形图像等信息了。例如:下面的语句从对话框中获得了一个设备上下文句柄,并在设备上下文中输出文本,方法如下。(1)新建一个对话框应用程序。(2)在对话框类的OnPoint方法中添加如下代码:voidCDr
6、awDlgDlg::OnPaint(){HDChDC;hDC=GetDC()->m_hDC;chardata[]="明日科技有限公司!";TextOut(hDC,60,30,data,strlen(data));//代码省略}在向设备上下文中输出文本时,文本将显示在对话框中,如图9-1所示。课件制作人:宋坤9.2设备上下文介绍Windows操作系统提供了一组WindowsAPI函数用于在设备上下文中绘制信息,通常被称为GDI函数。在上面的例子中使用的TextOut函数便是其中之一。在MFC中,为了方便用户绘图,提供了一个设备上下文
7、类——CDC,该类中封装的多个方法用于在屏幕中绘制信息,这些方法多数是与GDI函数一一对应的。在后面的章节中将逐步介绍这些方法在实际中的应用。课件制作人:宋坤9.3GDI对象为了方便用户在设备上下文中绘制信息,Windows提供了6个GDI对象,分别为画笔、画刷、字体、位图、调色板和区域。MFC对这6个对象分别进行了封装,形成了6个对应的类,分别为“CPen”、“CBrush”、“CFont”、“CBitmap”、“CPalette”和“CRgn”。下面分别对这6个类进行介绍。CPenCPen类封装了Windows的画笔对象。画
8、笔对象主要用于绘制线条,通过画笔对象,可以设置绘制线条的宽度、颜色、风格等信息。CPen类的主要方法如下。1.CreatePen方法CreatePen方法用于动态创建一个画笔对象。语法:BOOLCreatePen(intnPenStyle,intn
此文档下载收益归作者所有