新浪博客

VB中Image与PictureBox控件的一些使用技巧

2014-07-15 11:47阅读:
图像框(Image)和图片框(PictureBox)都是用于显示图形,可以显示.bmp;.ico;.wmf; .jpg;.gif等类型的文件.图片框不仅可以显示图像,还可以作为其他控件的容器,因此PictureBox控件比Image控件功能更强.
  一些属性:
  (1)Picture属性:用于设置在图像框与图片框重要显示的图像文件名.科在设计是通过属性或在运行时调用LoadPicture函数来设置.
  例如: Picture1.Picture=LoadPicture('D:\Pic\Girl.jpg')
  (2)Align属性
  Align属性用于设置图片框再窗体中的显示方式.0(默认)无特殊显示,1为与窗体一样宽,位于窗体顶端;2为与窗体一样宽,位于窗体底端;3为与窗体一样高, 位于窗体左端;4
与窗体一样高,位于窗体右端.
  (3)ImageStretch属性
  Stretch属性用于确定图像框如何与图片相适合.True为图像将适应图像框的大小,False为图像框将适应图像的大小.
  (4)图片框的AutoSize属性
  AutoSize属性用于确定图片框如何与图像相适应.False为保持原始尺寸,当图形比图片框大时,超出的部分被截去,True为图片框根据图形大小自动调整,也就是说图片多大,图片框就变成多大.

  下面我就基于这两个控件介绍两个很简单的技巧:

  ()如何实现对于过大图片的按比例缩小
  有的同学看到这里可能就会问缩小一副图片只要将ImageStretch属性设为True不就行了吗.话随这样说,但是仔细想一下这样不可能实现将一副图片按照相同的比例缩小.因为图像框的大小不能保证和图片是成比例的.那么用什么方法解决这个问题呢?应该用Move方法解决.

  其实Move方法可以用在很多控件中,甚至数据库控件中也有它的身影.但我只介绍一下他在本问题里的应用.Move方法既可用于Image控件又可用于PictureBox控件中.他的用法为:
  对象.Move Left,Top,Width,Hight
  其中'对像'为要使用的控件名,这里可以是Image1PictureBox1.'Left,Top'分别为对象左上角在所在容器的坐标,'Width,Hight'为对象的宽和高.现在知道了这个方法那么实现图片的按比例缩小就显得很简单了.我们可以将图片放于一个Image或者PictureBox,然后用Move语句设置图片的位置,与缩小的比例.但还需要一个步骤,你还要求出图片的宽度与高度才能按照你规定的比例缩小.求图片的宽和高可用下面的语句: Image1.Picture.Width, Image1.Picture.Height.可求出他们.现在大功告成了,图片可以缩小了.缩小时可用下面的语句:
 Image1.Move 4320,240,Val(Image1.Picture.Width)/3,Val(Image1.Picture.Height)/3
  '4320,240为图片的左上坐标.将图片缩小1/3.

  ()如何实现图片的拖动
  上面的例子其实很简单,但假如你想不到Move的话就不那么好办了.下面的技巧同样很简单,但是要实现图片的拖动就不得不使用MouseDown, MouseUp,MouseMove三个事件.现在我们先分析一下图片拖动的过程.首先你要用鼠标拖动一副图时下按下了鼠标左键,这就触发了MouseDown事件.当你拖住鼠标并移动鼠标时就触发了MouseMove事件,拖动完毕放开左键时又触发了MouseUp事件.

  下面我先介绍一下这三个事件:

MouseUpMouseDown用法一样
MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

变量Button决定鼠标哪个键被按下.
1--鼠标左键按下 2--鼠标右键按下 4--鼠标中键按下

变量Shift提供鼠标键按下时SHIFT,Ctrl,Alt件组合的代码:
 No key pressed 0 Shift 1
  Shift+Ctrl 3 Shift+Alt 5
  Alt 4 Alt+Ctrl 6
  Ctrl 2 Shift+Ctrl+Alt 7

  X,Y:控件或窗体的当前位置坐标--MouseDown,MouseUp事件触发的水平和垂直位置.

  MouseMove 用法
  MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

  Button,Shift参数与前面的相似,这里不再赘述.X,YMouseMove触发时鼠标的水平和垂直位置.下面用一段例程说明如何用这三个元素实现图片的拖动:

  Dim xp As Integer
  Dim yp As Integer
  Dim xz As Integer
  Dim yx As Integer

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Button = 1
  xp = X
  yp = Y
  Image1.MousePointer = 7
End Sub

Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If xp <> 0 And yp <> 0 Then
    Image1.Left = Image1.Left + (X - xp)
    Image1.Top = Image1.Top + (Y - yp)
  End If
  xz = Image1.Left
  yz = Image1.Top
End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Button = 1
  xp = yp = 0
  Image1.MousePointer = 0
End Sub

我的更多文章

下载客户端阅读体验更佳

APP专享