我現在做的是一個縮圖瀏覽的程序,在picture1里面加載image控件,picture1的height當然也要根據image的變多而變大.
可是picture1的height到了245745就再也不會變大了,我用滾動條也看不到下面的圖片.
應該怎麼做呢?

解决方案 »

  1.   

    PictureBox里面放PictureBox控件,缩放里面的那个
      

  2.   

    這樣picturebox還是一樣height不可超過245745.還不是一樣?
      

  3.   

    没用过这么大,可能是PICTUREBOX的极限了吧。
      

  4.   

    已經是極限,但是如果我一定有很多個圖片要顯示在里面.
    那麼我想,就只能讓picture里面只顯示一部分圖片.當拉滾動條時,picture里面的圖片就更換.但是圖片仍要像瀏覽一頁一樣顯示.請問這樣的效果要如何實現呢?我這個程序是在一個from里放一個picture1,然后再在picture1里加一個image1(0),當要顯示圖片時,加載n個image1(),然後將圖片顯示在image1()中.也就是說多少個圖片,就有多少image.然后用滾動條來瀏覽picture1中的圖片. 但是圖片太多,picture1中就不夠了,看不到下面的圖片.
      

  5.   

    Option Explicit
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Private Const SWP_NOMOVE = &H2Private Sub Form_Load()
        Me.ScaleMode = vbPixels '因为 SetWindowPos 设置窗口的尺寸时是以象素为单位的,所以把窗体的单位改为象素
        SetWindowPos Picture1.hwnd, 0, 0, 0, Picture1.Width, 20000, SWP_NOMOVE
        MsgBox Picture1.Height '象素高度
        MsgBox Picture1.Height * Screen.TwipsPerPixelY 'VB 默认的 Twip 高度
        
    End Sub
      

  6.   

    wzzwwz(棒子面窝头) 的方法
    把它全部改成象素,這樣個極限會擴大,但也大不了很多了,沒有解決根本問題.
      

  7.   

    好的滚动设计,应该是动态重绘的,不要用image控件,一个pictureBox足已,每次滚动都只是重绘pictureBox中显示出来的那部分局部画面。
      

  8.   

    homezj(小吉)  你的意思是說用pictureBox的PaintPicture方法嗎?
    我試了那樣,但是如果我要對其中一個縮圖操作的話,就有點困難了.比如單擊縮圖就被選中,雙擊放大,擊鼠標右鍵出現快捷菜單等操作.
    不知道我說明白沒有.
      

  9.   

    没有困难,只要每个缩图大小固定,根据pictureBox中Mouse事件可取到点击位置的坐标,此坐标称为相对坐标,加上滚动条取值,便可得到的在假想大图中的绝对坐标,由此算出此坐标对应是哪个缩图,甚至在缩图中的哪个位置。
      

  10.   

    homezj(小吉) 能興個例看看嗎。現在不知道怎麼下手。
      

  11.   

    是的我現在的程序就是沒有用picture也沒有用滾動條,只是在form裡面放了12個image控件,然後就要一頁頁翻,但總覺得有點死板。