版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1010章章 c+builderc+builder图形程图形程序设计简介序设计简介第第1010章章 c+builderc+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编程的特点编程的特点 设备无关性设备无关性 windowswindow
2、s使用图形设备接口使用图形设备接口(gdi)(gdi)及设备驱动程序实现图形及设备驱动程序实现图形的设备无关性的设备无关性. . 基于消息驱动基于消息驱动 消息是关于用户接口改变的事件产生的。如鼠标、键盘、窗消息是关于用户接口改变的事件产生的。如鼠标、键盘、窗口变化等。一般用一个专用符号常量表示一种对应消息。以口变化等。一般用一个专用符号常量表示一种对应消息。以wm_wm_开头。开头。10.1 windows10.1 windows图形编程知识图形编程知识 10.1.2 10.1.2 图形设备接口图形设备接口gdigdi windowswindows操作系统具有一系列组建模块,分别负责系操作系
3、统具有一系列组建模块,分别负责系统管理的某个方面,与绘图联系最密切的组建是图形统管理的某个方面,与绘图联系最密切的组建是图形设备接口(设备接口(gdigdi)。)。gdigdi管理像画笔、位图及调色板这管理像画笔、位图及调色板这样的图形对象,每个样的图形对象,每个gdigdi对象都使用某种方式控制对象都使用某种方式控制gdigdi提供的绘图例程的动作。画笔确定了提供的绘图例程的动作。画笔确定了gdigdi画的线条的画的线条的属性,画刷影响属性,画刷影响gdigdi如何填充屏幕的不同区域,当窗如何填充屏幕的不同区域,当窗口需要重画时,口需要重画时,windowswindows类使用类使用whit
4、e_brushwhite_brush填充窗口填充窗口的整个背景。的整个背景。10.1 windows10.1 windows图形编程知识图形编程知识 10.1.3 windows10.1.3 windows坐标系统坐标系统 windowswindows通常使用的是三种类型的坐标通常使用的是三种类型的坐标 屏幕坐标(象素坐标)屏幕坐标(象素坐标) 原点固定在屏幕左上角,坐标的单位是象素(也称图形元素,它对应于屏幕原点固定在屏幕左上角,坐标的单位是象素(也称图形元素,它对应于屏幕上的一个彩色点)。上的一个彩色点)。 窗口坐标窗口坐标 原点在整个窗口的左上角(包括标题栏和窗口边框)。原点在整个窗口的
5、左上角(包括标题栏和窗口边框)。 用户坐标用户坐标 原点在窗口的可绘图区域的左上角。原点在窗口的可绘图区域的左上角。 不同坐标系统应用的一个特殊例子:鼠标消息用客户坐标提供位置不同坐标系统应用的一个特殊例子:鼠标消息用客户坐标提供位置数据,而数据,而getcursorposgetcursorpos()()是以屏幕坐标获取鼠标指针的当前位置。是以屏幕坐标获取鼠标指针的当前位置。10.2 10.2 基本图形类基本图形类10.2.1 tcanvas10.2.1 tcanvas图形类图形类 在在c+builderc+builder中,绘图操作经常是作用在对象的画布中,绘图操作经常是作用在对象的画布(c
6、anvas)(canvas)上,而不是直接在对象上绘制。画布是指在窗体、图形控制、打印上,而不是直接在对象上绘制。画布是指在窗体、图形控制、打印机或位图上按位映射的作图表面。画布类变量常用作窗体或其它控机或位图上按位映射的作图表面。画布类变量常用作窗体或其它控件的属性,同时它本身也是对象。画布提供了一个用户作图区域,件的属性,同时它本身也是对象。画布提供了一个用户作图区域,程序运行期间可以在该区域作图。程序运行期间可以在该区域作图。 canvascanvas的主要优点是能有效管理资源和设备描述表,它封装了的主要优点是能有效管理资源和设备描述表,它封装了windowswindows中与中与gdi
7、gdi有关的有关的apiapi,这意味着可以不必关心,这意味着可以不必关心gdigdi的概念。在的概念。在程序设计中,不管是向屏幕、打印机还是位图上绘图,都只需使用程序设计中,不管是向屏幕、打印机还是位图上绘图,都只需使用同样的方法。同样的方法。10.2.1 tcanvas10.2.1 tcanvas图形类图形类10.2.1.1 canvas10.2.1.1 canvas的主要属性的主要属性 属 性说 明brush确定图形和背景的颜色和图案。通过tbrush对象的属性设置cliprect画布的裁剪矩形,将绘图区域限制在该区域copymode指定图形的复制模式font指定文本字体,通过tfont
8、对象的属性设置handlecanvas的设备描述表句柄,可直接调用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填充画布上指定的
9、矩形floodfill填充画布上的封闭多边形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从内存中复制位图到画笔上
10、,尺寸可伸缩textextent返回传入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 canvad-li
11、neto(x2, x2);-lineto(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, x
12、4,y4);canvas-arc(x1,y1, x2,y2, x3,y3, x4,y4);(6)(6)绘多边形绘多边形 canvas-polygon(const windows:tpoint canvas-polygon(const windows:tpoint * *points, const int points_sizepoints, const int points_size););(7)(7)绘文本绘文本 canvas-textout(int x, int y, const ansistringcanvas-textout(int x, int y, const ansistring
13、 text); text);10.2.2 tpen10.2.2 tpen类类 penpen属性的值为一个属性的值为一个tpentpen类,使用类,使用tpentpen类可以描述类可以描述windowswindows的笔的笔(pen)(pen)属性用以控制画布上绘制的线或几何图形属性用以控制画布上绘制的线或几何图形(shape)(shape)的边框线。常用属性有:的边框线。常用属性有:widthwidth:线宽(象素数),默认值为:线宽(象素数),默认值为1 1;colorcolor:其属性值是一个:其属性值是一个tcolortcolor对象,对象,tcolortcolor对象有三种赋值方式:对
14、象有三种赋值方式: (1)rgb(1)rgb: cancascancas-pen-color = rgb(255,0,0);/-pen-color = rgb(255,0,0);/红色红色 (2)(2)颜色常量:颜色常量:canvas-pen-color = clgreencanvas-pen-color = clgreen; /; /绿色绿色 (3)(3)二进制码:二进制码:canvas-pen-color = 0 x00ff0000;/canvas-pen-color = 0 x00ff0000;/蓝色蓝色stylestyle:设置线型:设置线型 canvas-pen-style = ps
15、clearcanvas-pen-style = psclear; /; /不绘图形轮廓不绘图形轮廓 canvas-pen-style = psdashcanvas-pen-style = psdash; /; /短划线短划线 canvas-pen-style = psdashdotcanvas-pen-style = psdashdot; /; /点划线点划线 canvas-pen-style = psdashdotdotcanvas-pen-style = psdashdotdot; /; /双点划线双点划线 canvas-pen-style = psdotcanvas-pen-style
16、= psdot; /; /点线点线 canvas-pen-style = psinsideframecanvas-pen-style = psinsideframe; /; /实线,宽度大于实线,宽度大于1 1时可变色时可变色 canvas-pen-style = pssolidcanvas-pen-style = pssolid; /; /实线实线modemode:确定笔的颜色与画布颜色的作用规律。:确定笔的颜色与画布颜色的作用规律。10.2.3 tbrush10.2.3 tbrush类类 tbrushtbrush类用于图形填充,如填充多边形、圆形、矩形等。可选择填充类用于图形填充,如填充多
17、边形、圆形、矩形等。可选择填充图案和颜色。图案和颜色。(1 1)图案设置)图案设置 canvas-brush-style = bssolidcanvas-brush-style = bssolid; /; /实心填充实心填充 canvas-brush-style = bsclearcanvas-brush-style = bsclear; /; /不填充不填充 canvas-brush-style = bsbdiagonalcanvas-brush-style = bsbdiagonal; /; /斜线填充斜线填充 canvas-brush-style = bsfdiagonalcanvas-
18、brush-style = bsfdiagonal; /; /反斜线填充反斜线填充 canvas-brush-style = bscrosscanvas-brush-style = bscross; /; /十字线填充十字线填充 canvas-brush-style = bsdiagcrosscanvas-brush-style = bsdiagcross; /; /交叉线填充交叉线填充 canvas-brush-style = bshorizotalcanvas-brush-style = bshorizotal; /; /水平线填充水平线填充 canvas-brush-style = bs
19、verticalcanvas-brush-style = bsvertical; /; /垂直线填充垂直线填充(2 2)颜色设置)颜色设置 canvas-brush-color = cltealcanvas-brush-color = clteal; /; /紫色刷子紫色刷子10.3 10.3 图形图像组件图形图像组件 10.3.1 tmainmenu10.3.1 tmainmenu组件组件 10.3.2 timage10.3.2 timage组件组件 10.3.3 tshape10.3.3 tshape组件组件 10.3.4 10.3.4 文件文件i/oi/o组件组件10.3.1 tmain
20、menu10.3.1 tmainmenu组件组件 tmainmenutmainmenu组件为菜单设计控件。组件为菜单设计控件。 它打开一个它打开一个mainmenumainmenu窗体,用户可以灵活的用它设计窗体,用户可以灵活的用它设计程序菜单。程序菜单。10.3.2 timage10.3.2 timage组件组件timagetimage组件是一个显示图像和绘制图形的组件。在设计阶段以虚组件是一个显示图像和绘制图形的组件。在设计阶段以虚框显示,运行时并不可见。框显示,运行时并不可见。它支持它支持jpgjpg、bmpbmp、icoico、emfemf等多种格式的图像文件。等多种格式的图像文件。
21、timagetimage组件的基本属性组件的基本属性:autosizeautosize:确定图像组件是否调整自身大小以适应所包含的图像。:确定图像组件是否调整自身大小以适应所包含的图像。canvascanvas:定义一个:定义一个tcanvastcanvas对象,提供一个绘图界面,可用来显示对象,提供一个绘图界面,可用来显示位图、绘制图像、输出文字。位图、绘制图像、输出文字。centercenter:指定图像是否居中显示。:指定图像是否居中显示。picturepicture:确定在:确定在timagetimage中显示的图像。中显示的图像。stretchstretch:确定在:确定在timag
22、etimage中显示的图像是否调整自身以适应中显示的图像是否调整自身以适应timagetimage的大小。的大小。transparenttransparent:确定:确定timagetimage组件的背景是否透明。组件的背景是否透明。10.3.3 tshape10.3.3 tshape组件组件tshapetshape是一个窗口装饰组件。可以在窗口上画出各种几何图形、不同底是一个窗口装饰组件。可以在窗口上画出各种几何图形、不同底纹和边框的图形。纹和边框的图形。tshapetshape组件的常用属性:组件的常用属性:brushbrush:指定填充:指定填充shapeshape组件的颜色和样式,其两个子属性为组件的颜色和样式,其两个子属性为colorcolor和和stylestyle。penpen:指定绘制:指定绘制shapeshape边框所使用的画笔。边框所使用的画笔。penpen的子属性有:的子属性有:colorcolor、mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公益活动形象宣传大使合同
- 保险公司法务专员招聘协议
- 社会组织暂行管理办法
- 拆迁补偿安置
- 培训社区防疫知识与技能
- 博物馆消防工程升级合同
- 在线旅游平台风险管理
- 环卫垃圾处理机械租赁协议
- 玩具公司续租合同样本
- 影楼员工招聘协议
- 2023年度学校食堂食品从业人员考核试题(附答案)
- 主题人像摄影智慧树知到答案2024年四川工商职业技术学院
- 餐饮服务食品安全规范2024
- 酒业有限公司财务管理制度方案
- 高空蜘蛛人施工专项施工方案
- 全国新世纪版信息技术七年级上册第一单元第四课《电脑是如何工作的》教学设计
- 立冬主题课件
- 工程伦理与工程认识智慧树知到期末考试答案章节答案2024年哈尔滨工程大学
- 上海市2023-2024学年高一化学上学期期中试题
- (高清版)JTGT 3331-2024 采空区公路设计与施工技术规范
- 诺贝尔生理学或医学奖史话 知到智慧树网课答案
评论
0/150
提交评论