
vb paintpicture
PrivateSubopenfile()OnErrorGoTobCommonDialog1.Filter="jpg,bmp,gif图片文件|*.jpg*;*.bmp*;*...
Private Sub openfile()
On Error GoTo b
CommonDialog1.Filter = "jpg,bmp,gif图片文件|*.jpg*;*.bmp*;*.gif*|所有文件|*.*"
CommonDialog1.ShowOpen
Picture1.Cls
Picture2.Visible = False
Picture2.Picture = LoadPicture(CommonDialog1.FileName)
xx = (Picture1.Width / 2 - Picture2.Picture.Width / 2)
yy = CInt(Picture1.Height / 2 - Picture2.Picture.Height / 2)
Picture1.PaintPicture Picture2.Picture, xx, yy
save = True
b:
End Sub
请问为什么调用这个过程不能在picture1上画出图形?但是我把xx和yy改为常数后就可以画出来了?
请高手解释一下。
我是想做一个绘图程序,可以编辑打开的图片,并且是打开的图片居中
http://z.baidu.com/question/121502290.html
到时候再给你分 展开
On Error GoTo b
CommonDialog1.Filter = "jpg,bmp,gif图片文件|*.jpg*;*.bmp*;*.gif*|所有文件|*.*"
CommonDialog1.ShowOpen
Picture1.Cls
Picture2.Visible = False
Picture2.Picture = LoadPicture(CommonDialog1.FileName)
xx = (Picture1.Width / 2 - Picture2.Picture.Width / 2)
yy = CInt(Picture1.Height / 2 - Picture2.Picture.Height / 2)
Picture1.PaintPicture Picture2.Picture, xx, yy
save = True
b:
End Sub
请问为什么调用这个过程不能在picture1上画出图形?但是我把xx和yy改为常数后就可以画出来了?
请高手解释一下。
我是想做一个绘图程序,可以编辑打开的图片,并且是打开的图片居中
http://z.baidu.com/question/121502290.html
到时候再给你分 展开
展开全部
自己单步跟踪一下,看看xx和yy到底算出来是什么值,是不是你期望的值。
可能是你缩放单位的问题。
建议不要使用Picture属性的宽高而直接使用PictureBox对象的宽高,以免因为单位不同而导致数值计算出错。
(PictureBox的宽度单位是它的父控件的ScaleMode指定的(默认是Twip),而Picture属性的单位是HiMetric单位,往往是不一样的,不经换算而使用就会导致计算出错)
你可以这样试试:
将你的Picture2的AutoSize属性设为True
然后将下面那块改成这样:
xx = (Picture1.Width / 2 - Picture2.Width / 2)
yy = (Picture1.Height / 2 - Picture2.Height / 2)
这样的话一般情况下单位就会相同。
(不过如果做绘图程序的话仍然建议将所有控件的单位设为Pixel)
可能是你缩放单位的问题。
建议不要使用Picture属性的宽高而直接使用PictureBox对象的宽高,以免因为单位不同而导致数值计算出错。
(PictureBox的宽度单位是它的父控件的ScaleMode指定的(默认是Twip),而Picture属性的单位是HiMetric单位,往往是不一样的,不经换算而使用就会导致计算出错)
你可以这样试试:
将你的Picture2的AutoSize属性设为True
然后将下面那块改成这样:
xx = (Picture1.Width / 2 - Picture2.Width / 2)
yy = (Picture1.Height / 2 - Picture2.Height / 2)
这样的话一般情况下单位就会相同。
(不过如果做绘图程序的话仍然建议将所有控件的单位设为Pixel)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询