如何拖动picture控件里的图片移动 如何拖动picture控件里的图片移动但picture控件不动让里面的图片随鼠标的移动而移动 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 picture控件里面嵌套一个picture控件 试试在mousedown且mousemove的时候自己计算好显示区域用bitblt自己画。。 用painpicture简单画简单一点,但是可能会有闪烁,用API如bitblt就应该没有闪烁不过嵌套一个picture控件应该是最好的办法,只要把该PictureBox的AutoReDraw属性设置为True,表示图片放置在内存里面,这样速度应该很好. 留言收到,但现在我的机子里已经没有vb6了,没有经过调试不敢乱给你代码。简单点的还是用回上面各位的两个图片框的方法吧。参考程序:http://www.chinageren.com/Article/program/Basic/200508/48396_2.html上面的示例是通过滚动条来确定图片的显示区域,如果要根据鼠标移动也可以,自己算出鼠标移动的偏移量再去显示就是了原理一样 Private Sub HScroll2_Change() BitBlt FrmMain.hDC, -HScroll2.Value, -50, 3914, 650, Pic1.hDC, 0, 0, COPY_PUT FrmMain.RefreshEnd Sub用这段代码就可以实现在滚动跳移动中实时改变位图的位置,而且无闪烁。 我在做人事管理系統的時候,加相片時就是用二個Picture來做的。可以拖動。象拖動無邊框窗體那樣,只要把第一個參數的句柄改為裏面的Picture控件的句柄。 不能用两个picture是因为我还要在图片上做很多操作,象画图啊,放大,缩小等等....所以只能用一个用BitBlt的话该如何做呢?哪位好心人给我代码吧,呵呵 :) 不能用两个picture是因为我还要在图片上做很多操作,象画图啊,放大,缩小等等....所以只能用一个用BitBlt的话该如何做呢?哪位好心人给我代码吧,呵呵 :)==============================如果要做那些操作就还要加中间结果的保存就你的原题说个大概吧。1.form中有一个picturebox,但里面没有图片2.用loadpicture从文件中读取图片数据。。例如:dim pic as pictureset pic=loadpicture("c:\abc.bmp")这时,pic的handle属性就等于hbitmap。3.用getobject得到图片的长和宽。。4.建立存储器dc(createcompatibledc,createcompatiblebitmap)5.为存储器dc选择对象(selectobject)6.这时,你已经可以用bitblt把存储器里的图像显示到picturebox里去了,作为初始状态,bitblt的xy坐标都应该为0。7.程序中加四个全局变量(xtemp、ytemp、xnow、ynow)xtemp、ytemp记录上次移动图片后显示的偏移量,xnow、ynow记录按下鼠标时的坐标8.计算显示区域过程:picturebox的mousedown事件中将此时鼠标的x、y赋值给xnow、ynowpicturebox的mousemove事件中先判断button参数,如果按下了左键,则用这时的x,y参数连同xtemp、ytemp、xnow、ynow一起计算现在应该显示的图片的区域。根据上面计算得到的实际显示图形区域坐标,用bitblt把这部分的图形复制到picturebox。大致思路如此,但我也没试过,不知速度、效果等如何,还有其他细节要完善看看其他朋友有没有现成的代码吧。。 哦,忘了最后一步:9。在picturebox的mouseup事件中把最后一次mousemove事件中计算得到的坐标偏差值赋值给xtemp、ytemp,以作为下次计算的初始坐标。 谢谢lsftest() 有谁有现成的代码吗?可以给高分丫 用什么代码删除文本框中的文件列表 vb读写access与文本文件,哪个速度更快 VB(VegetableBird)问题:如何在VB中编写DLL? 如何向数据库的表中插入一个字段 菜单窗体 还是关于打印的问题! 怎样取得计算机名 一个人做所有的事情,很痛苦·!!!!1 很多人都说数据库插入图片不好,趁着下岗的机会我在家里做了个试验插入了1500张图片,没觉得慢 用vb做数据库备份 DataGrid中怎么设定某行或者某单元格的颜色,多谢 第二个菜鸟问题~~
简单点的还是用回上面各位的两个图片框的方法吧。参考程序:
http://www.chinageren.com/Article/program/Basic/200508/48396_2.html
上面的示例是通过滚动条来确定图片的显示区域,如果要根据鼠标移动也可以,自己算出鼠标移动的偏移量再去显示就是了原理一样
BitBlt FrmMain.hDC, -HScroll2.Value, -50, 3914, 650, Pic1.hDC, 0, 0, COPY_PUT
FrmMain.Refresh
End Sub
用这段代码就可以实现在滚动跳移动中实时改变位图的位置,而且无闪烁。
加相片時就是用二個Picture來做的。可以拖動。
象拖動無邊框窗體那樣,只要把第一個參數的句柄改為裏面的Picture控件的句柄。
所以只能用一个
用BitBlt的话该如何做呢?
哪位好心人给我代码吧,呵呵 :)
所以只能用一个
用BitBlt的话该如何做呢?
哪位好心人给我代码吧,呵呵 :)
==============================
如果要做那些操作就还要加中间结果的保存
就你的原题说个大概吧。
1.form中有一个picturebox,但里面没有图片
2.用loadpicture从文件中读取图片数据。。例如:
dim pic as picture
set pic=loadpicture("c:\abc.bmp")
这时,pic的handle属性就等于hbitmap。
3.用getobject得到图片的长和宽。。
4.建立存储器dc(createcompatibledc,createcompatiblebitmap)
5.为存储器dc选择对象(selectobject)
6.这时,你已经可以用bitblt把存储器里的图像显示到picturebox里去了,作为初始状态,bitblt的xy坐标都应该为0。
7.程序中加四个全局变量(xtemp、ytemp、xnow、ynow)xtemp、ytemp记录上次移动图片后显示的偏移量,xnow、ynow记录按下鼠标时的坐标
8.计算显示区域过程:
picturebox的mousedown事件中将此时鼠标的x、y赋值给xnow、ynow
picturebox的mousemove事件中先判断button参数,如果按下了左键,则用这时的x,y参数连同xtemp、ytemp、xnow、ynow一起计算现在应该显示的图片的区域。
根据上面计算得到的实际显示图形区域坐标,用bitblt把这部分的图形复制到picturebox。大致思路如此,但我也没试过,不知速度、效果等如何,还有其他细节要完善
看看其他朋友有没有现成的代码吧。。