欢迎来到天天文库
浏览记录
ID:40230431
大小:539.20 KB
页数:50页
时间:2019-07-27
《GDI+编程入门》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GDI+编程入门2学习内容掌握GDI+的基本知识Graphics对象与Paint事件常用的数据结构、画笔、画刷、文字与图像的显示参考例子GUIsample完成大作业GDI+GDI+是Microsoft的新一代的二维图形系统,它完全面向对象。GDI+包括三部分:二维矢量图形绘制、图像处理和文字显示。要在Windows窗体中显示字体或绘制图形必须要使用GDI+。GDI+提供了多种画笔、画刷、图像等图形对象,此外还包括一些新的绘图功能,如Alpha混色、渐变色、纹理、消除锯齿以及使用包括位图在内的多种图像格式。GDI+使用的各种类大都包含在命名空间System::Draw
2、ing中。座标系统在我们开始之前,一定要先知道GDI+的座标系统如何定义。座标原点(0,0)在左上角,X轴及Y轴分别向右及向下增加,预设的单位长度是像素(pixel),请看下图:常用的数据结构在使用GDI+显示文字和绘制图形时,经常要用到一些数据结构,如Size、Point和Rectangle等。它们在System::Drawing命名空间中定义,都属于值类型(结构类型)。Point结构代表Windows窗体应用程序中的一个二维表面上的位置,常用于定义窗体或控件的位置;表示一个点的坐标值,具有以下两种属性:X,定义Point结构的x坐标或者水平位置。Y,定义Poin
3、t结构的y坐标或者垂直位置。初始化方法有4种Point():空点;Point(intx,inty):直接指定X坐标和Y坐标初始化;Point结构Point(intdw):通过一个用32位的整数来初始化,参数的高16位表示Y坐标,低16位表示X坐标。Point(Sizesz):通过一个Size变量来初始化。sz的宽度表示X坐标,高度表示Y坐标。可通过IsEmpty属性检测Point结构是否为空,为空则返回true。可以直接对Point变量进行+、–、==、!=运算以及Point变量与Size值的加减操作。PointF结构类似Point结构,区别是它的坐标是浮点值。Po
4、int值可以隐式自动转换成PointF值;PointF值转换成Point值,可以通过Point结构包含的3种静态方法:Ceiling,每个坐标值取大于或等于原值的最小整数值;Round,每个坐标值四舍五入取最接近的整数值;Truncate,每个坐标值取小于或等于原值的最大整数值。Size结构Size结构用于定义Windows窗体应用程序中的窗口、控件和其他矩形区域的大小。具有宽度值Width和高度值Height属性,也可以使用IsEmpty属性来检测Size是否为空。初始化方法直接指定高度值和宽度值,Sizeb=Size(50,100);通过一个Point变量来初始
5、化,Sizea=Size(Point(100,20));判断两个Size变量是否相等可以使用其Equals方法,如size1.Equals(size2);SizeF结构与Size结构——类似PointF结构与Point结构。Rectangle结构Rectangle结构保存一个矩形区域的位置和大小,包含有X、Y、Width、Height、Size属性,还有Top、Bottom、Left、Right等属性返回各边坐标值。Rectangle的初始化指定一个Point值和Size值,如Rectanglec=Rectangle(point1,size1);直接指定矩形位置、宽
6、度和高度值,前两个参数指定了矩形左上角的XY坐标值,后两个参数指定矩形的宽度和高度。如Rectangled=Rectangle(left1,top1,width1,height1);包含的一些方法Contains方法:确定一个矩形或一个点是否在当前矩形区域内。参数类型可以是Point结构,Rectangle结构和点坐标值。Union方法:求两个矩形的并集。参数是两个要求并集的矩形,返回一个包含其并集的Rectangle结构。Rectangle结构Intersect方法:求两个矩形的交集。参数为两个求交的矩形,则返回一个表示其交集的Rectangle结构;参数为一个矩
7、形,则获得当前矩形与参数矩形的交集Rectangle,用这个结果替换当前矩形。可以直接对Rectangle变量进行等于==或不等于!=操作。正在绘制或操作一个控件的工作区时,常常使用Rectangle结构。窗体的工作区是位于标题栏(或有菜单栏)下面,且在窗体边界内部的控件的一部分。Form类中有一个ClientRectangle属性,用于获取工作区的位置。如,RectanglemyRect=ClientRectangle;这里需要注意,状态栏虽然覆盖了工作区,但并没有减少工作区的总大小。在计算一个窗体的可视区域时,要将工作区的大小值减去状态栏的大小。Rectan
此文档下载收益归作者所有