Visual_Basic 板


LINE

※ 引述《ashinplay (..............)》之銘言: : 1.如何把繪pictureBox裡的圖片(全部物件)清除? 圖片物件:Set Picture1.Picture = Nothing 繪圖物件:Picture1.Cls() : 2.如何使用scrollBar來瀏覽pictureBox裡的圖片(只考慮垂直方向) : 就是如過圖片數超過pictureBox的大小的話,那scrollBar應該怎麼寫? : (p.s. pictureBox裡的圖片是用PaintPicture的方式來畫的) : 感謝~ '表單上放置 PictureBox、CommonDialog、CommandButton 三個控制項 Option Explicit Private PicMax As Long '儲存圖片的總高度 Private Sub Form_Activate() Dim w As Long, h As Long '調整視窗位置及大小 w = 800 * Screen.TwipsPerPixelX: h = 600 * Screen.TwipsPerPixelY Move (Screen.Width - w) / 2, (Screen.Height - h) / 2, w, h '調整 PictureBox 位置及大小 w = 500 * Screen.TwipsPerPixelX: h = ScaleHeight Picture1.Move 0, 0, w, h '調整 VScrollBar 位置及大小 VScroll1.Move Picture1.Left + w, 0, 300, h End Sub Private Sub Command1_Click() On Error GoTo errProc Dim PicFile As IPictureDisp, a As Variant Dim i As Integer, j As Integer, Count As Integer Dim FilePath As String, FileName As String, PictureWidth As Long Dim x As Long, y As Long, w As Long, h As Long, ratio As Single '取得圖片寬度(可顯示範圍@_@) PictureWidth = Picture1.ScaleWidth - VScroll1.Width '開啟自動繪圖功能 Picture1.AutoRedraw = True '設定檔案對話方塊路徑 ChDir App.Path CommonDialog1.InitDir = CurDir '多重選取、95以上標準對話方塊、使用目前路徑、禁示輸入不存在的檔案 CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or _ cdlOFNNoChangeDir Or cdlOFNFileMustExist '打開檔案對話方塊 CommonDialog1.ShowOpen '取得使用者選擇的檔案清單,Chr(0)為分隔符號 a = Split(CommonDialog1.FileName, Chr(0)) Count = UBound(a) + 1 x = 0: y = 0 '開始將選擇的圖片檔逐一印出來 For i = 0 To Count - 1 FileName = a(i) If i = 0 Then If Count > 0 Then '如果是複選的話,第一個項目即為檔案路徑 FilePath = a(i) FileName = "" Else '如果是單選的話,第一個項目為檔案路徑+檔案名稱 j = InStrRev(FileName, "\") FilePath = Left(FileName, j) FileName = Mid(FileName, j + 1) End If If Not FilePath Like "*\" Then FilePath = FilePath & "\" End If If Trim(FileName) <> "" Then '載入圖片,並取得圖片大小 Set PicFile = LoadPicture(FilePath & FileName) w = PicFile.Width: h = PicFile.Height '依比例縮圖 If w > PictureWidth Then ratio = PictureWidth / w w = PictureWidth: h = h * ratio End If '將 PictureBox 調整成適當大小,不然圖片會看不到 Picture1.Height = y + h '將圖片印出至 PictureBox Picture1.PaintPicture PicFile, x, y, w, h y = y + h End If Next '設定捲軸狀態 VScroll1.Min = 0 VScroll1.Max = y - ScaleHeight VScroll1.LargeChange = y / 10 VScroll1.SmallChange = y / 20 Exit Sub errProc: MsgBox Err.Description End Sub 'ScrollBar 兩個事件必須處理@_@ Private Sub VScroll1_Change() Call VScroll1_Scroll() End Sub Private Sub VScroll1_Scroll() '將 PictureBox 向上移動,即可看到下面超出視窗範圍的內容了 Picture1.Top = PicMax - VScroll1.Value End Sub -- 技巧來自於 vb 研究小站,提醒大家要多多參考。 -- ▃▅▇▆▄ ▆▂▃ ` 逝去感如何能留住,半點遺留殊不易,██▅▇▄▃ ▇▃▂" . █████████▃i ▁▄▇ 更多悽悽慘慘的遭遇………██▆▃ █▅▆▃ˍ▄* ▂█▄▇▅▂. 我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43
1F:推 ashinplay:感激不盡<(_ _)> 05/13 12:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP