在复制这段代码
Private Sub Form_Resize()
Image1Top = 0
Image1Left = 0
Image1Stretch = True
Image1Height = MeScaleHeight
Image1Width = MeScaleWidth
Image1Picture = MePicture
End Sub
运行就可以咯~不用代码怎么也实现不了的,可以少量代码实现,加个image图框,stretch属性设置为true
Form_Resize过程加入
Image1Left = 0
Image1Top = 0
MeWidth = Image1Width
MeHeight = Image1Height我来赚点分——提供基本方法行吗?
显示:假设你已知道怎么显示图像(为了随意移动图像,先把Imagebox控件加到PictureBox控件上,在PictureBox上画Imagebox边框外这8个手柄);在任意位置显示图像(image1move
left,top);图像大小的属性值能获取(图像在ImageBox完整显示并拉伸,则只关注ImageBox尺寸属性值即可);
移动:如果在ImageBox按下了鼠标则记住此点(xi0,yi0)及(image1left,image1top),在鼠标Move事件中根据鼠标在ImageBox的位置(xi,yi),
计算变换量(dx=xi-xi0,
dy=yi-yi0),
并把(dx,dy)加到(image1left,image1top);更新这8个手柄;
缩放:当鼠标移到这8个位置附近(在PictureBoxMouseMove中判断)改变其形状属性值,若按下,则根据移动变化量调整Imagebox尺寸或位置——这需要针对每一个位置做出决定,不难办到。可以用image呀
这个控件有个stretch属性
设置其值为true
将其image的width及height分别等于form1的scalewidth及scaleheight
把加入到image中即可
这样又能看到全部
而且此又和窗体的大小相当Dim p As Picture
Private Sub Form_Load()
MeAutoRedraw = True
Set p = LoadPicture("C:\songhuiqiao1jpg") '换成你自己的
End Sub
Private Sub Form_Resize()
PaintPicture p, 0, 0, Width, Height
End Sub单纯显示图形用Image就可以~而且用Image也正好可解决你的问题
设定Image的Stretch=true
在加入以下代码
Private Sub Form_Resize()
Image1Move 0, 0, ScaleWidth, ScaleHeight
End Sub
或者使用以下的方式来做也可以
Private Sub Form_Paint()
MePaintPicture MePicture, 0, 0, ScaleWidth, ScaleHeight
End Sub
2种都很简单 不过推荐你使用第一种方法。第二种拉大还可以 缩小有时过快 它反应不过来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)