荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Junhot (倚浩), 信区: Program
标  题: Re: 如何在vb实现图片用鼠标圈定部分的放大
发信站: BBS 荔园晨风站 (Sun Mar  4 15:10:11 2001), 转信


呵呵,我给你的信你也许没有仔细去看,里面有提到paintpicture这个东东。
要实现你说的东西用它非常简单:

建立一个新工程,在form1上添加两个picturebox,
一个大些picturebox1,用来放想要部分放大的图片(在picture属性里添加图片);
一个小些picturebox2,用来显示放大后的图象。

然后在代码栏写入以下程序:
Dim oldx, oldy, newx, newy As Long
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As_
Single, Y As Single)
    oldx = X
    oldy = Y
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As_
Single, Y As Single)
    newx = X
    newy = Y
    Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.Width,_
Picture2.Height, oldx, oldy, newx - oldx, newy - oldy
End Sub

编译运行,用鼠标在picture1上框定范围,相应的在picture2上就会显示放大结果。
这个程序的实现主要就是先在鼠标点下时获得左上点的位置,在鼠标松开时获得右
下点的位置,然后将这个范围内的图象通过paintpicture处理放到picture2里。

非常简单,并不需要任何api知识,当然这个程序是很原始的,比如你可以试一试从
右下往左上框定,会很有意思,呵呵,解决这个问题加一个判断就可以了,我想大家
都会。
你可以在这个程序上扩充,让它更加完美。

【 在 cloudy (cloud) 的大作中提到: 】
: 其实我是要实现图形的部分放大(用鼠标来框定),但好象单通过vb本身很难
: 各位大侠有何高见???(我不想通过api函数那么麻烦)
: thx!!


--
                         战意渐去,红尘琐事不关己,归隐故里。

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.28.211]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店