PICTURE控件上一个IMAGE控件
为什么如果用
picture1.picture=loadpicture("kkk")
然后再
 Image1.Picture = LoadPicture("888")
这样可以同时显示两张图片,image为小图片叠加在picture控件上而如果picture控件为了居中显示图片,所以调用这样的函数显示图片
Sub loadpic1(ByVal picpath As String)
Dim pic As PictureBox
'pic.Cls
Pd.Cls
Ps.Cls
Set pic = Me.Controls.add("vb.picturebox", "pic", Me)
pic.AutoRedraw = True
pic.AutoSize = True
pic.Visible = True
pic.Picture = LoadPicture(lujingpath)
Picture1.PaintPicture pic.Picture, (Picture1.Width - pic.Width) / 2, (Picture1.Height - pic.Height) / 2, pic.Width, pic.Height, 0, 0, pic.Width, pic.Height, vbSrcCopy
Me.Controls.Remove pic
End Sub
然后再
 Image1.Picture = LoadPicture("888")
image1的图片就显示不出来呢?
该如何修改呢?

解决方案 »

  1.   

    显示方式不同 的原因1,图片是loadpicture方式显示的.
      picture1.picture所代表的内容就是你要的图片.
      所以能传递到image2,图片是paint上去的,好比贴了一张图上去,这图的内容并不包含在picture1.picture内.
      所以不能传递到image.
      

  2.   

    可是IMAGE和PICTURE是两个独立的控件
    应该不需要互相传递吧
    而且我是先在PICTURE上PAIT图片,再在IMAGE上显示图片,应该没错吧?
      

  3.   

    如果把picture1的autoredraw设置为true, 还是不行的话...那只有把picture1的图用savepicture保存下来,再 Image1.Picture = LoadPicture("888")这样 显示,肯定可以了.
      

  4.   

    会不会是把图片贴上去就把image给覆盖了呢》?
      

  5.   

    楼主说的picture图片又不是image的图片,他们不是一张图片
    用 savepicture 做什么呢?
      

  6.   

    Image的图片没有道理不显示出来呀代码中的这一句是不是写错了?
    pic.Picture = LoadPicture(lujingpath) 中的lujingpath该是picpath吧
      

  7.   

    Option ExplicitSub loadpic1(ByVal picpath As String)
    Dim pic As PictureBoxSet pic = Me.Controls.Add("vb.picturebox", "pic", Me)
    pic.AutoRedraw = True
    pic.AutoSize = True
    pic.Visible = True
    pic.Picture = LoadPicture(picpath)
    Picture1.PaintPicture pic.Picture, (Picture1.Width - pic.Width) / 2, (Picture1.Height - pic.Height) / 2, pic.Width, pic.Height, 0, 0, pic.Width, pic.Height, vbSrcCopy
    Me.Controls.Remove pic
    End SubPrivate Sub Command1_Click()
      loadpic1 ("D:\ss.jpg")
    End Sub
    这个满足要求了!!居中显示图片
      

  8.   

    应该不会,因为IMAGE的图片很小张谢谢faysky20的细心
      

  9.   

    我用楼主的代码试了一下,没有问题哦,只不过我把其中的两句注释掉了,你可以试试Private Sub Command1_Click()
        loadpic1 "C:\Documents and Settings\Administrator\桌面\vbTest\样品.jpg"
        Image1.Picture = LoadPicture("C:\Documents and Settings\Administrator\桌面\vbTest\vTest.jpg")
    End Sub
    Sub loadpic1(ByVal picpath As String)
        Dim pic As PictureBox
        'pic.Cls
    '    Pd.Cls  '<----------------注释这句,不知道是什么对象
    '    Ps.Cls  '<-------------------还有这句也不知道是什么对象,也注释掉了
        Set pic = Me.Controls.Add("vb.picturebox", "pic", Me)
        pic.AutoRedraw = True
        pic.AutoSize = True
        pic.Visible = True
        pic.Picture = LoadPicture(picpath)
        Picture1.PaintPicture pic.Picture, (Picture1.Width - pic.Width) / 2, (Picture1.Height - pic.Height) / 2, pic.Width, pic.Height, 0, 0, pic.Width, pic.Height, vbSrcCopy
        Me.Controls.Remove pic
        
    End Sub
      

  10.   

    对的,我的程序就是这样的
    可是现在的问题是在form_load事件下,不能用loadpic1 ("D:\ss.jpg")
    否则显示不出来
    所以,不知道loadpicture能否居中显示
      

  11.   

    我试了,在Form_Load下Image1的图片也可以,不过得把Picture1的AutoRedraw属性设置为True,同时那两句还是要注释掉