当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++ Builder 初学问与答(八)

  8.图形类组件
  59)问:Windows是一个图形系统,C++Builder是怎样处理图形的呢?

  答:C++Builder通过提供图形组件来处理图形,其中比较常用的有图像组件(Image)、几何图形组件(Shape)和画板组件(PaintBox)。前两个组件位于Additional页中,画板组件位于System页中。

  在BCB中,Form、Image、BitMap、PaintBox等都具有绘图能力,这些组件中都有Canvas属性。

  60)问:图像控件有哪些特殊的属性?

  答:图像组件可以显示各种以文件形式存储在磁盘上的图形。它有这样一些特殊的属性。

  AutoSize属性,当属性值为True时,图像组件会自动调节尺寸以便适应图像组件的大小。缺省值为True。

  Stretch属性,当该属性为True时,图像的尺寸自动调整并填满整个图像组件的范围。但ICO文件无法产生这种效果。缺省值为False。

  Transparent属性,确定是否允许图像中指定的颜色透明,从而使组件下面的物体显示出来。缺省值为False。

  Center属性,当该属性为True时,图像居中显示;否则,从左上角开始显示。

  属性Picture,你可以在设计阶段利用这个属性指定所要显示的图片,也可以在运行期间再显示。前面一种情况下,你可以单击Picture属性的Value列中的省略号按钮,这时会出现一个图片编辑对话框,单击对话框中的Load按钮就可以选择载入要显示的图片了。

  61)问:如果是在程序运行期间载入图片,应该怎么办?

  答:如果是在程序运行期间载入图片,那么可以使用TPicture类的方法LoadFromFile,这个方法可以载入存储在磁盘上的图像文件。例如要载入D盘根目录下的picture.bmp,可以这样调用:

  Image1->Picture->LoadFromFile(\"d:\\\\picture.bmp\");

  这个控件可处理的图片文件的类型有:.BMP文件、.ICO文件、.EMF和.WMF等多种图像文件。如果你试图载入一种无法识别的文件类型,将会产生异常错误。

  62)问:能说一下AutoSize与Stretch的区别吗?

  答:好的,在窗体上放置两个图像组件,将左边的图像组件的AutoSize属性为True,所以载入任何图片后,组件的尺寸与图片的尺寸完全相同。而且如果你增大或减小图像组件的尺寸,图片的显示仍然不变。将右边的图像组件的AutoSize属性设置为False,将它的Stretch属性设置为True。当你增大或减小图像组件的尺寸,图片将按比例增大或缩小,也就是说图片始终充满整个组件。

  63)问:TShape控件有什么重要属性?

  答:这个组件可以显示一些常见的几何图形,例如矩形、圆、椭圆等。几何图形组件有几个比较重要的属性:Brush,Pen 和Shape。

  Brush属性,用来设置几何图形内部的填充特性,包括填充的图案(Style)和颜色(Color)等。

  Pen属性,用来设置几何图形的外框特性,包括画笔的颜色(Color)、线型(Style)和线宽(Width)及Mode关系等。

  属性Shape,用来指出所显示的几何图形类型。这个属性可以有六种不同的值,分别表示六种不同的几何图形;

  (1)stEllipse表示椭圆。

  (2)stRectangle表示矩形。

  (3)stRoundRect表示圆角矩形。



  (4)stRoundSquare表示圆角正方形。

  (5)stSquare表示正方形。

  (6)stCircle表示圆。

  在设计阶段,你可以使用鼠标改变图形的尺寸。在运行期间,可以通过Height和Width属性改变图形的尺寸。

  64)问:属性Brush前面有一个加号,它是什么意思?

  答:它表示这个属性是可以展开的,也就是说,它还包含一些子属性。单击加号,可以发现它的子属性是:Color和Style。

  Color属性包含一系列C++Builder预定义的颜色,你可以从中为显示的几何图形选择一种填充颜色。

  Style属性确定了几何图形的填充样式,它可以分别取这样8种值:bsBDiagonal, bsClear, bsCross, bsDiagCross, bsDiagonal, bsHorizontal, bsSolid和bsVertical。

  属性Pen也象属性Brush一样有子属性。它的子属性是Color, Mode, Style和Width。其中最常用的就是Style和Width,它们分别表示线型和线宽。子属性Style可以取这样一些值来画边框:

  psSolid
  表示实线。
  
  psDash
  表示破折号。
  
  psDot
  表示圆点。
  
  psDashDot
  表示破折号和圆点。
  
  psDashDotDot
  表示破折号、圆点、圆点。
  
  psClear
  表示没有线。
  
  psInsideFrame
  表示内框实线。
  
  65)问:这个画板组件有什么作用?

  答:画板组件主要为用户提供一块作图区域,用户可以使用绘图语句在这个作图区域上画出各种不同的图形。

  要注意的是,由于画板组件没有边界,所以通常应该把它放在一个有边界的容器类组件上。

  画板组件主要使用Canvas属性来进行绘图工作。Canvas(画布)是类TCanvas的对象,类TCanvas包含绘图中使用的各种方法和属性。下面我们首先介绍Canvas对象的各种属性。

  画笔(Pen)  Canvas对象中有一个画笔成员,它确定绘制几何图形时使用的画笔类型。刚才我们介绍了画笔的线型和线宽。

  画笔的Color属性是绘图时使用的前景色。

  画笔的属性Mode用来确定画笔与屏幕上原有点的混合方式。可结合当前的颜色、屏幕的颜色或它们的反转值,对线段的颜色重新定义。但不改变Color属性。



  它可以取这样一些值:

  pmBlack:表示用黑色绘图;

  pmWhite:表示用白色绘图;

  pmNot:画笔绘制的点的颜色与原有的颜色相反;

  pmCopy:画笔用Color属性中定义的颜色绘图。

  PmNotCopy:画笔用Color属性中定义的颜色的反转色绘图;

  PmMergePenNot:画笔用Color属性中定义的颜色与屏幕颜色的反转色结合后绘图;

  PmMaskNotPen:画笔用屏幕颜色与Color属性中定义的颜色结合后绘图;

  PmMergeNotPen:画笔用屏幕颜色与Color属性中定义的颜色的反转值结合后绘图。

  Brush属性,刷子属性在前面已经详细介绍过,它可以确定图形的填充模式和填充颜色。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接