改变picture.width
picture.height属性不行吗?

解决方案 »

  1.   

    form的picture的height 属性是是只读的
      

  2.   

    要在form中加入一个背景图片,直接用form1.picuture=loadpicture(...)来加载,现在想改变图片高度,怎样做?
      

  3.   

    在窗体上建立一个ImageBox,设置其宽度、高度等于窗体的宽度、高度,left和top等于0,再加载图片,最后设置自动缩放属性。
      

  4.   

    把图片加载到一Image在Paint事件中写代码:
    Me.PaintPicture Image1.Image,0,0,高,宽
      

  5.   

    别急如果不用picturebox 或image 控件能完成这个功能吗?用API能实现吗?
      

  6.   

    呵呵,用Image不是更方便么?
    用API应该不行吧?
      

  7.   

    API?!
    笑话!
    VB本身把Picture属性封装了
    Picture属性与API的可能联系性趋向于0!
      

  8.   

    那就只有这样了,算了还有一点,用了paintpicture 为什么原图片还在原处(我改了图片的位置),怎样将原位置的图片去掉 ?
      

  9.   

    我将form的autoredraw设为true也不行
      

  10.   

    '==============================================================
    '试一试这个,看看是不是你想要的
    '==============================================================Option ExplicitPrivate Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" ( _
            ByVal hdc As Long, _
            ByVal hObject As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Declare Function CreateCompatibleBitmap Lib "gdi32" ( _
            ByVal hdc As Long, _
            ByVal nWidth As Long, _
            ByVal nHeight As Long) As LongPrivate Declare Function StretchBlt Lib "gdi32" ( _
            ByVal hdc As Long, _
            ByVal x As Long, ByVal y As Long, _
            ByVal nWidth As Long, ByVal nHeight As Long, _
            ByVal hSrcDC As Long, _
            ByVal xSrc As Long, ByVal ySrc As Long, _
            ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
            ByVal dwRop As Long) As Long
            
    Private Const SRCCOPY = &HCC0020Private Sub DrawBitmap(TheForm As Form, _
                           ByVal DstWidth As Long, ByVal DstHeight As Long, _
                           ByVal FileName As String)
        Dim SrcWidth As Long, SrcHeight As Long
        Dim Pic As New StdPicture
        Dim hBitmap As Long, hOldObject As Long
        Dim hMemDC As Long
        
        TheForm.AutoRedraw = True
        Set Pic = LoadPicture(FileName)
        hMemDC = CreateCompatibleDC(0)
        hOldObject = SelectObject(hMemDC, Pic.Handle)
        
        SrcHeight = TheForm.ScaleY(Pic.Height, vbHimetric, vbPixels)
        SrcWidth = TheForm.ScaleX(Pic.Width, vbHimetric, vbPixels)
        
        Call StretchBlt(TheForm.hdc, 0, 0, DstWidth, DstHeight, _
                        hMemDC, 0, 0, SrcWidth, SrcHeight, SRCCOPY)
        TheForm.Refresh
        
        Call SelectObject(hMemDC, hOldObject)
        Call DeleteObject(hBitmap)
        Call DeleteObject(hOldObject)
        Call DeleteDC(hMemDC)
    End Sub
    Private Sub Command1_Click()
        '在Form上画一个200*200相素的位图
        DrawBitmap Me, 200, 200, "c:\test.bmp"
    End Sub