一些属性: (1)Picture属性:用于设置在图像框与图片框重要显示的图像文件名.科在设计是通过属性或在运行时调用LoadPicture函数来设置. 例如: Picture1.Picture=LoadPicture("D:\Pic\Girl.jpg") (2)Align属性 Align属性用于设置图片框再窗体中的显示方式.0(默认)无特殊显示,1为与窗体一样宽,位于窗体顶端;2为与窗体一样宽,位于窗体底端;3为与窗体一样高, 位于窗体左端;4为与窗体一样高,位于窗体右端. (3)Image的Stretch属性 Stretch属性用于确定图像框如何与图片相适合.True为图像将适应图像框的大小,False为图像框将适应图像的大小. (4)图片框的AutoSize属性 AutoSize属性用于确定图片框如何与图像相适应.False为保持原始尺寸,当图形比图片框大时,超出的部分被截去,True为图片框根据图形大小自动调整,也就是说图片多大,图片框就变成多大. 下面我就基于这两个控件介绍两个很简单的技巧: (一)如何实现对于过大图片的按比例缩小 有的同学看到这里可能就会问缩小一副图片只要将Image的Stretch属性设为True不就行了吗.话随这样说,但是仔细想一下这样不可能实现将一副图片按照相同的比例缩小.因为图像框的大小不能保证和图片是成比例的.那么用什么方法解决这个问题呢?应该用Move方法解决. 其实Move方法可以用在很多控件中,甚至数据库控件中也有它的身影.但我只介绍一下他在本问题里的应用.Move方法既可用于Image控件又可用于PictureBox控件中.他的用法为: 对象.Move Left,Top,Width,Hight 其中"对像"为要使用的控件名,这里可以是Image1或PictureBox1."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事件. 下面我先介绍一下这三个事件: MouseUp和MouseDown用法一样 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件组合的代码: Shift+Ctrl Alt Ctrl X,Y:控件或窗体的当前位置坐标--MouseDown,MouseUp事件触发的水平和垂直位置. MouseMove 用法 MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Button,Shift参数与前面的相似,这里不再赘述.X,Y为MouseMove触发时鼠标的水平和垂直位置.下面用一段例程说明如何用这三个元素实现图片的拖动: 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 |
|