CBuilder图形程序设计入门.ppt
《CBuilder图形程序设计入门.ppt》由会员分享,可在线阅读,更多相关《CBuilder图形程序设计入门.ppt(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1010章章 C+Builder C+Builder图形程序图形程序设计简介设计简介第第1010章章 C+Builder C+Builder图形程图形程序设计简介序设计简介10.1 Windows10.1 Windows图形编程知识图形编程知识10.2 10.2 基本图形类基本图形类10.3 10.3 基本图形图像组件基本图形图像组件10.4 BCB10.4 BCB图形程序示例图形程序示例10.1 Windows10.1 Windows图形编程知识图形编程知识10.1.1 Windows10.1.1 Windows编程的特点编程的特点设备无关性设备无关性 windowswindows使用图
2、形设备接口使用图形设备接口(GDI)(GDI)及设备驱动程序实现图形的及设备驱动程序实现图形的设备无关性设备无关性.基于消息驱动基于消息驱动 消息是关于用户接口改变的事件产生的。如鼠标、键盘、窗消息是关于用户接口改变的事件产生的。如鼠标、键盘、窗口变化等。一般用一个专用符号常量表示一种对应消息。以口变化等。一般用一个专用符号常量表示一种对应消息。以WM_WM_开头。开头。10.1 Windows10.1 Windows图形编程知识图形编程知识10.1.2 10.1.2 图形设备接口图形设备接口GDIGDIWindowsWindows操作系统具有一系列组建模块,分别负责系统操作系统具有一系列组建
3、模块,分别负责系统管理的某个方面,与绘图联系最密切的组建是图形设管理的某个方面,与绘图联系最密切的组建是图形设备接口(备接口(GDIGDI)。)。GDIGDI管理像画笔、位图及调色板这样管理像画笔、位图及调色板这样的图形对象,每个的图形对象,每个GDIGDI对象都使用某种方式控制对象都使用某种方式控制GDIGDI提提供的绘图例程的动作。画笔确定了供的绘图例程的动作。画笔确定了GDIGDI画的线条的属性,画的线条的属性,画刷影响画刷影响GDIGDI如何填充屏幕的不同区域,当窗口需要重如何填充屏幕的不同区域,当窗口需要重画时,画时,WindowsWindows类使用类使用WHITE_BRUSHWH
4、ITE_BRUSH填充窗口的整个背填充窗口的整个背景。景。10.1 Windows10.1 Windows图形编程知识图形编程知识10.1.3 Windows10.1.3 Windows坐标系统坐标系统WindowsWindows通常使用的是三种类型的坐标通常使用的是三种类型的坐标屏幕坐标(象素坐标)屏幕坐标(象素坐标)原点固定在屏幕左上角,坐标的单位是象素(也称图形元素,它对应于屏幕原点固定在屏幕左上角,坐标的单位是象素(也称图形元素,它对应于屏幕上的一个彩色点)。上的一个彩色点)。窗口坐标窗口坐标 原点在整个窗口的左上角(包括标题栏和窗口边框)。原点在整个窗口的左上角(包括标题栏和窗口边框
5、)。用户坐标用户坐标 原点在窗口的可绘图区域的左上角。原点在窗口的可绘图区域的左上角。不同坐标系统应用的一个特殊例子:鼠标消息用客户坐标提供位置不同坐标系统应用的一个特殊例子:鼠标消息用客户坐标提供位置数据,而数据,而GetCursorPos()GetCursorPos()是以屏幕坐标获取鼠标指针的当前位置。是以屏幕坐标获取鼠标指针的当前位置。10.2 10.2 基本图形类基本图形类10.2.1 TCanvas10.2.1 TCanvas图形类图形类 在在C+BuilderC+Builder中,绘图操作经常是作用在对象的画布中,绘图操作经常是作用在对象的画布(Canvas)(Canvas)上,
6、而不是直接在对象上绘制。画布是指在窗体、图形控制、打印上,而不是直接在对象上绘制。画布是指在窗体、图形控制、打印机或位图上按位映射的作图表面。画布类变量常用作窗体或其它控机或位图上按位映射的作图表面。画布类变量常用作窗体或其它控件的属性,同时它本身也是对象。画布提供了一个用户作图区域,件的属性,同时它本身也是对象。画布提供了一个用户作图区域,程序运行期间可以在该区域作图。程序运行期间可以在该区域作图。Canvas Canvas的主要优点是能有效管理资源和设备描述表,它封装了的主要优点是能有效管理资源和设备描述表,它封装了WindowsWindows中与中与GDIGDI有关的有关的APIAPI,
7、这意味着可以不必关心,这意味着可以不必关心GDIGDI的概念。在的概念。在程序设计中,不管是向屏幕、打印机还是位图上绘图,都只需使用程序设计中,不管是向屏幕、打印机还是位图上绘图,都只需使用同样的方法。同样的方法。10.2.1 TCanvas10.2.1 TCanvas图形类图形类10.2.1.1 Canvas10.2.1.1 Canvas的主要属性的主要属性 属 性说 明Brush确定图形和背景的颜色和图案。通过Tbrush对象的属性设置ClipRect画布的裁剪矩形,将绘图区域限制在该区域CopyMode指定图形的复制模式Font指定文本字体,通过Tfont对象的属性设置HandleCan
8、vas的设备描述表句柄,可直接调用WindowsAPIPen指定画笔类型,通过TPen对象的属性设置PenPos设置当前画笔的x、y坐标Pixel设置当前区域象素的颜色10.2.1 TCanvas10.2.1 TCanvas图形类图形类10.2.1.2 Canvas10.2.1.2 Canvas的主要方法的主要方法 方 法功 能Are画圆弧BrushCopy以透明背景显示位图CopyRect复制剪裁矩形内的图形到画布Draw在画布上复制内存中的图形DrawFocusRec在当前矩形区域绘制矩形Ellipse画椭圆,并用当前画刷填充FillRect填充画布上指定的矩形FloodFill填充画布上
9、的封闭多边形LineTo从当前画笔位置向指定的(x、y)坐标点画直线MoveTo设置当前画笔位置Pie画饼形图PolyBezier画Bezier曲线10.2.1 TCanvas10.2.1 TCanvas图形类图形类10.2.1.2 Canvas10.2.1.2 Canvas的主要方法的主要方法 方 法功 能Polygon画多边形,并用当前画刷填充Polyline画折线,不自动闭合Rectangle画矩形轮廓线,并用当前画刷填充Refresh取消选定的画笔、画刷和字体,但不改变其属性值RoundRect画园角填充矩形StretchDraw从内存中复制位图到画笔上,尺寸可伸缩TextExtent
10、返回传入Text参数的AnsiString类字符串的高度和宽度TextHeight返回传入Text参数的AnsiString类字符串的高度TextOut使用当前字体在画笔上输出文本TextRect在剪裁矩形内输出文本TextWidth返回传入Text参数的AnsiString类字符串的宽度10.2.1 TCanvas10.2.1 TCanvas图形类图形类10.2.1.3 10.2.1.3 图形语句示例图形语句示例 (1)(1)绘直线绘直线 Canvas-MoveTo(x1,y1);Canvas-MoveTo(x1,y1);Canvad-LineTo(x2,x2);Canvad-LineTo(
11、x2,x2);(2)(2)绘矩形绘矩形 Canvas-Rectangle(x1,y1,x2,y2);Canvas-Rectangle(x1,y1,x2,y2);(3)(3)绘椭圆绘椭圆 Canvas-Ellipse(x1,y1,x2,y2);Canvas-Ellipse(x1,y1,x2,y2);(4)(4)绘园角矩形绘园角矩形 Canvas-RoundRect(x1,y1,x2,y2);Canvas-RoundRect(x1,y1,x2,y2);(5)(5)绘园弧绘园弧 Canvas-Arc(x1,y1,x2,y2,x3,y3,x4,y4);Canvas-Arc(x1,y1,x2,y2,x3
12、,y3,x4,y4);(6)(6)绘多边形绘多边形 Canvas-Polygon(const Windows:Tpoint*Points,const int Points_Size);Canvas-Polygon(const Windows:Tpoint*Points,const int Points_Size);(7)(7)绘文本绘文本 Canvas-TextOut(int x,int y,const AnsiString Text);Canvas-TextOut(int x,int y,const AnsiString Text);10.2.2 TPen10.2.2 TPen类类 PenP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CBuilder 图形 程序设计 入门
限制150内