加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

VB PictureBox中图片长宽尺寸大于本身尺寸,却没有显示完整呢?

发布时间:2020-12-17 08:16:49 所属栏目:百科 来源:网络整理
导读:上面显示的三个尺寸: 图片框宽度,图片框内部宽度(不含边框),还有一个特殊的图片框内图片的宽度。 发现一个问题: 图片尺寸大于图片框,但是,,图片去没有占满图片框,这是什么原因呢? 水平反转一下图片,可以看到这个问题将困惑我们: 图片明显放大了

上面显示的三个尺寸: 图片框宽度,图片框内部宽度(不含边框),还有一个特殊的图片框内图片的宽度。

发现一个问题: 图片尺寸大于图片框,但是,,图片去没有占满图片框,这是什么原因呢?


水平反转一下图片,可以看到这个问题将困惑我们:



图片明显放大了,原因就出在上面所说的尺寸问题上。


百度N久没有结果。一次一次的查MSDN,终于找到一个东西:


  • Picture 对象-以 HiMetric 为单位的图片的高度和宽度。

于是后面的数值5477就好解释了。它是以HiMetric为单位进行显示的,而不是我们一般默认的Twips(缇 )进行显示的。

因为看起来这个数值要大于前面3915等数据,实际并不大。


那么我们只须要把这个HiMetic进行转换到Twips上就可以定位进行显示了。

用语句:

object.ScaleX (width,fromscale,toscale)

object.ScaleY (height,toscale)

返回值:最终单位的数据

width,height是要被转换的数值

fromScale 源模式 ToScale目的模式。即从源模式转换成目的模式。上面就应该是把vbHiMetric转换成vbTwips


Option Explicit

Private Sub Command1_Click()
    Dim xWidth As Integer
    Text1.Text = Picture1.Width & "," & Picture1.ScaleWidth & "," & Picture1.Picture.Width
    xWidth = Picture1.ScaleX(Picture1.Picture.Width,vbHimetric,vbTwips)
    Picture1.PaintPicture Picture1,xWidth,-xWidth
End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读