查看單個文章
舊 2009-07-29, 03:43 PM   #8 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時級別:97 | 在線時長:9866小時 | 升級還需:130小時
註冊日期: 2002-12-07
文章: 13344
精華: 0
現金: 26454 金幣
資產: 3024314 金幣
預設



以下是隨手做的 (右邊的SPictureBox本來是隱藏的,為了展示所以Visible設為 True)

http://xs941.xs.to/xs941/09313/snap1893.jpg
(由圖可看出 StretchBlt 的縮放效果不佳...^^")

語法:
Private Sub Command1_Click()
Dim x As Long
Dim y As Long
Dim w As Long
Dim h As Long
Dim i As Integer
Dim D As Single '縮放值

    D = 1 / 2 '縮小成二分之一
    
   TPictureBox.AutoRedraw = True '宣告TPictureBox "圖的方法" 是存在於 記憶體的影像 內
    For i = 0 To 7
        SPictureBox.Picture = LoadPicture("r:\" & i & ".jpg")

        w = SPictureBox.ScaleWidth * D
        h = SPictureBox.ScaleHeight * D
        
        StretchBlt TPictureBox.hDC, x, y, w, h, SPictureBox.hDC, 0, 0, SPictureBox.ScaleWidth, SPictureBox.ScaleHeight, SRCCOPY
        
        x = x + SPictureBox.ScaleWidth * D '下一張的 X座標是接在前一張的最右邊緣

             '*當滿足第一排排滿四張後...
        If i = 3 Then
            y = y + SPictureBox.ScaleHeight * D '第二排的圖 Y座標固定是...
            x = 0 'X重新歸零
              End If
    Next i
    TPictureBox.Refresh '將TPictureBox刷新一次,使 記憶體的影像(陣列圖) 正確顯示於上
    
End Sub

此帖於 2009-07-30 03:15 PM 被 mini 編輯.
mini 目前離線  
送花文章: 2013, 收花文章: 8002 篇, 收花: 26806 次
回覆時引用此帖
向 mini 送花的會員:
chung1206 (2009-07-31)
感謝您發表一篇好文章