分享

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

 求知881 2015-11-06

    图像框(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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多