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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP