第13节 关于图形控件

  VB为了在应用程序中创建图形效果,提供了4个控件以简化与图形有关的操作。它们是PictureBox控件、Image控件、Shape控件和Line控件。

1、图形框(PictureBox)控件

  主要显示图片,也可作为其他控件的容器。

1)Picture属性

  将指定的图形文件调入内存的函数 LoadPicture 的一般格式:

           [对象 .]Picture = LoadPicture("文件名路径")   

  缺省时,加载到图形框中的图形超过部分将被剪裁掉,图形框控件不会提供滚动条。如果图形小于图形框时,控件也不能伸展图像以适应控件大小。

2)Autosize属性

  当Autosize属性设置为True时图形框能自动调整大小以适应图像。

 

例:当窗体尺寸变化时,通过Form_Resize()事件重新设定图形框的高与宽。

Private Sub Form_Resize()

    Picture1.Height = Form1.ScaleHeight

    Picture1.Width = Form1.ScaleWidth

End Sub

 

例:两个图形框中图片交换位置。

Private Sub Form_Load()

    Picture1.Picture = LoadPicture("d:\VB源程序\教学用图片\pic2.jpg")

    Picture2.Picture = LoadPicture("d:\VB源程序\教学用图片\pic1.jpg")

    Picture3.Visible = False       '隐藏对象

End Sub

Private Sub Form_Click()

    Picture3.Picture = Picture1.Picture

    Picture1.Picture = Picture2.Picture

    Picture2.Picture = Picture3.Picture

End Sub

2、图像框(Image)控件

    图像框与图形框很相似,但是图像框比图形框占用更少的内存,描绘得更快。它与图形框的主要区别是:首先图像框中不能再放置其他控件,其次,图像框没有Autosize属性,但它可以自动改变大小以适应其中的图形。另外可以通过Stretch属性来拉伸位图。

当图像小于图像框:

  Stretch属性为 true时,图像被拉伸与图像框一样大。

  Stretch属性为 False时,图像框自动调整与图像一样大。

当图像大于图像框:

  Stretch属性为 true时,图像被图像框裁取与图像框一样大小的画面。

  Stretch属性为 False时,图像框自动调整与图像一样大。

3、保存绘制或装载在窗体、图形框和图像框内的图形

  可以通过SavePicture命令把图形保存到磁盘文件中。命令格式如下:

    SavePicture 对象名.属性,文件名

  其中:对象名为图形框或图像框的控件名

例:在窗体上画一同心圆,并将图形存入文件Test.bmp文件中。

Private Sub Form_Click()

    Dim cx, cy, limit, radius

    ScaleMode = 3: AutoRedraw = -1

    Width = Height

    cx = ScaleWidth: cy = ScaleHeight: limit = cx   

    For radius = 0 To limit

        Circle (cx, cy), radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)

    Next radius

    SavePicture Image, "d:\VB源程序\test.bmp"

End Sub

 

4、画线工具(Line)控件

Rem 直线控件

Private Sub Form_Click()

   Randomize

   For i = 0 To 6

     Line1(i).BorderColor = Rnd * &HFFFFFF    '线条颜色

     Line1(i).BorderStyle = i                 '线条样式

   Next i

End Sub

5、形状(Shape)控件

  形状(Shape)控件可以用来画矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。

 

 

 

 

 


Rem 图形控件

Private Sub Form_Click()

   Randomize

   For i = 0 To 5

     Shape1(i).Shape = i                      '图形形状

     Shape1(i).BorderColor = Rnd * &HFFFFFF   '边框颜色

     Shape1(i).FillStyle = Int(Rnd * 8)       '填充线条

     Shape1(i).FillColor = Rnd * &HFFFFFF     '填充颜色

   Next i

End Sub

1)通过Shape属性,确定所需要的形状。

2)通过FillStyle属性设置形状控件的填充图案