优内建站网,专业建站,企业建站,免费建站,智能建站,个人建站!
主营企业建站,seo优化,手机网站,微信网站开发等业务!>> 繁体中文
用户名: 密 码: 验证码:    
企业建站,专业建站,模板建站,智能建站
 您现在的位置:首页 >> 建站知识 >> 详细内容>>        【字体:  】【颜色: 绿

用Visual Basic轻松实现看图软件

在百度搜索关于“用Visual Basic轻松实现看图软件”的内容

在谷歌搜索关于“用Visual Basic轻松实现看图软件”的内容

买空间、服务器就上威客主机网(VK163.COM) 虚拟主机评测+IDC导航=威客主机之家 标志设计
[内容提要] 文/海蓝一、前言  在日常的工作或学习中,像一些常用的工具是必不可少的。比如ACDsee,WinRAR等等。其实在VB中就可以很容易地实现像ACDsee这样的一些基本看图功能,用着自己编写的看图软件,感觉是不是非常棒?!好了,言归正传,现在就开始编写吧!  二、分析与实现...

作者: 优内科技  来源: 优内科技  驻站日期:2009/8/18 【 加入收藏 】 【 打印此页 】 【 关闭

文/海蓝    一、 前言

  在日常的工作或学习中,像一些常用的工具是必不可少的。比如ACDsee,WinRAR等等。其实在VB中就可以很容易地实现像ACDsee这样的一些基本看图功能,用着自己编写的看图软件,感觉是不是非常棒?!好了,言归正传,现在就开始编写吧!

  二、分析与实现

  编写之前,首先把一些重要的实现功能思考一下。明白了原理,做其他类似的程序,应该是轻车熟路了。

  1) 在选择的目录中过滤出图片格式的文件(gif,jpg,bmp,ico等)功能:

  VB中自带的DriveListBox,DirListBox,FileListBox控件组合就可以轻易的实现上述功能,将FileListBox的Pattern属性设置为*.jpg;*.bmp;*.ico;*.gif即可,这样FileListBox中只显示Pattern属性设定好的扩展名所对应的图片文件。

  2) 将当前目录下的图片按分页的方式显示功能:

  关于显示图片的控件问题,其实用VB自带的Image控件就可以了。对于如何实现分页的问题,就需要按照自定义的显示图片数量/页(本程序定义为25张图片/页),动态生成Image控件组,然后将目录中的图片以缩放预览的方式显示出来,具体实现参见后面的代码。

  以上两个问题解决了,基本功能应该可以实现了。下面就是具体的实现步骤:

  a) 主窗体设计

  主窗体布局采用流行的T型框架,上方包括菜单及常用工具栏,左侧显示目录结构树,右侧为显示图片区域(图片预览区),下方为状态栏,用来显示简单的图片信息。下表是用到的部分控件列表:

控件名 控件类型 标题 说明
Command1(1) CommandButton 上一页 预览上一页图片
Command1(0) CommandButton 下一页 预览下一页图片
Picture1 PictureBox   用来装入预览控件组的容器控件
Image1(0) Image   显示图片控件
Drive1 DriveListBox   显示当前系统的磁盘列表
Dir1 DirListBox   显示当前磁盘的目录列表
File1 FileListBox   显示当前目录的图片格式文件列表

  b) 代码实现

  通过以下一段代码将驱动器列表控件、目录列表控件、文件列表控件联系起来。

Private Sub Dir1_Change()
 File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
 Dir1.Path = Drive1.Drive
 Call InitShowPic
End Sub


Private Sub File1_PathChange() ‘当文件列表发生变化时重新显示图片
 Call InitShowPic
End Sub

  其中InitShowPic是自定义函数,用来显示当前目录下的第一页图片。主窗体初始化时,需要先将显示图片的Image控件组动态创建,以下就是创建代码:

Private Sub Form_Load()
 Dim i, j As Integer
 For i = 1 To 24 ‘动态创建24个Image控件
  Load Image1(i) ‘动态创建Image控件
  Image1(i).Visible = True ‘显示此控件
 Next

 Drive1.Drive = "c:" ‘默认驱动器为C:
 Dir1.Path = "c:"
 Picture1.DrawWidth = 3
 For i = 1 To 4 ‘在Picture画线将Image控件组以5×5排列
  Picture1.Line (0, i * (Picture1.Height \ 5) - 30)-(Picture1.Width, i * (Picture1.Height \ 5) - 30), &H80000003

  Picture1.Line (i * (Picture1.Width \ 5) - 30, 0)-(i * (Picture1.Width \ 5) - 30, Picture1.Height), &H80000003
 Next

 For i = 0 To 4
  For j = 0 To 4
   Image1(i * 5 + j).Left = j * (Picture1.Width \ 5) + 50
   Image1(i * 5 + j).Top = i * (Picture1.Height \ 5) + 50
  Next
 Next
 currindex = -1 ‘当前选择图片的索引为-1表示没有选择图片
End Sub


Private Sub InitShowPic() ‘显示当前目录的第一页图片(1到25)
 Dim i As Integer
 For i = 0 To 24 ‘所有Image控件不显示图片
  Image1(i).Picture = LoadPicture("")
  Image1(i).ToolTipText = ""
 Next
 If File1.ListCount = 0 Then ‘如果当前目录没有图片
  StatusBar1.Panels(1).Text = ""
  StatusBar1.Panels(2).Text = ""
  StatusBar1.Panels(3).Text = ""
  StatusBar1.Panels(4).Text = ""
  StatusBar1.Panels(4).Visible = False
  If currindex <> -1 Then ‘如果选择了图片,则显示此图片的Image控件的边框风格改为平板风格
   Image1(currindex).Appearance = 0
  End If 
  currpage = 1: currindex = -1 ‘当前选择的页号为1并不选择图片
  Exit Sub
 End If
 currpage = 1: currindex = -1 ‘如果当前目录有图片,则将页号赋值为1并不选择图片
 Call DisplayPicPage(currpage) ‘调用自定义函数显示指定页号的图片
End Sub

Private Sub DisplayPicPage(page As Integer) ‘显示指定页的图片
 Dim i As Integer
 Dim usetime As Long
 On Error Resume Next
 usetime = GetTickCount
 If (File1.ListCount - (25 * (page - 1)) < 25) And (File1.ListCount - (25 * (page - 1)) > 0) Then
  For i = 0 To File1.ListCount Mod 25 - 1
   Image1(i).Picture = LoadPicture(Dir1.Path + "" + File1.List((page - 1) * 25 + i))
   Image1(i).ToolTipText = File1.List((page - 1) * 25 + i)
  Next
  For i = File1.ListCount Mod 25 To 24
   Image1(i).Picture = LoadPicture("")
   Image1(i).ToolTipText = ""
  Next
  StatusBar1.Panels(1).Text = "图片:" & File1.ListCount & "(张)" + Space(5) + "当前第" & (currpage - 1) * 25 + 1 & "-" & (currpage - 1) * 25 + File1.ListCount Mod 25 & "张"

 Else
  For i = 0 To 24
   Image1(i).Picture = LoadPicture(Dir1.Path + "" + File1.List((page - 1) * 25 + i))
   Image1(i).ToolTipText = File1.List((page - 1) * 25 + i)
  Next
  StatusBar1.Panels(1).Text = "图片:" & File1.ListCount & "(张)" + Space(5) + "当前第" & (currpage - 1) * 25 + 1 & "-" & currpage * 25 & "张"

 End If

 StatusBar1.Panels(4).Text = "用时:" & GetTickCount - usetime & "(ms)"
 StatusBar1.Panels(4).Visible = True
End Sub

‘点击【上一页】,【下一页】按钮事件

Private Sub Command1_Click(Index As Integer)
 File1.Refresh
 If File1.ListCount = 0 Then Exit Sub
 Select Case Index
  Case 0
   If currpage = (File1.ListCount \ 25 + 1) Then Exit Sub
   currpage = currpage + 1
   Call DisplayPicPage(currpage)
  Case 1
   If currpage = 1 Then Exit Sub
   currpage = currpage - 1
   Call DisplayPicPage(currpage)
  Case 2
   If currindex <> -1 Then
    Image1(currindex).Appearance = 0
   End If
   Call InitShowPic
 End Select
End Sub

  以上代码是程序的重点,后两个函数我没有注释,大家可以自己分析一下。最后不要忘了,动态创建的资源要及时释放,所以在Form_Unload事件中加上以下代码即可。

Private Sub Form_Unload(Cancel As Integer)
 Dim i As Integer
 For i = 1 To 24
  Unload Image1(i)
 Next
End Sub

  在此基础上,大家可以加上一些图片处理的功能,现在网络上有很多此方面的控件下载(比如Polar Draw等等),这样就可以和ACDsee相媲美了哦~~~

  下图是我的程序截图,程序在VB6.0+WINDOWS2000环境下编译通过。

用VisualBasic轻松实现看图软件
图为:程序截图

添加到QQ书签 百度收藏 订阅到抓虾 添加到鲜果  新浪ViVi  365Key网摘  天极网摘  我摘  和讯网摘  yahoo  收藏到收客网  Digbuzz我挖网  添加到饭否  挖客  添加到google  

   【回到顶部】 【返回文章列表】 编辑:优内科技
⊕ 上一篇:今天你泄露了吗 网络个人隐私渗透实例
⊕ 下一篇:轻松玩抠图:图像去除背景方法与技巧
  相关新闻
返回首页 | 设为首页 | 添加收藏 | 关于我们 | 联系我们 | 企业文化 | 合作伙伴 | 诚聘英才 | 网站报价 | 企业资质 | 网站地图
邮箱登陆 E- mail:master@cck5.com 点击这里给我发消息 客服专员 QQ:310203268 点击这里给我发消息 技术咨询 QQ:22071287点击这里给我发消息 代理备案 QQ:529631515
丰富的网站建设经验,专业提供网站建设、网站制作、网页设计服务,专业设计,真诚服务,不满意不收费!
Copyright 2008 - 2025 cck5 Inc. All Rights Reserved 优内建站网络科技公司
本站部分资源来自网络,如有侵犯您的版权,请告之,我们将即刻删除!QQ:310203268
主要业务:网站建设企业建站专业建站智能建站SEO优化微信建站手机建站
本站ICP备案号:浙ICP备11019299号 中国电信增值ICP经营许可证
不良信息举报中心 江西网警 信息产业部门备案 企业法人营业执照
 
扫优内微信二维码
“码”上有惊喜