1、摘 要 随着计算机及网络技术的不断发展,图片资源采用先进的数据库技术进行整理、保存和检索,并利用便捷的网络技术进行发布和传播成为其在教学和研究应用方面的主流趋势。本文通过开发一个小型软件图片数据库管理系统,实现了Visual Basic 6.0和Access数据库的DAO连接,实现了简单的数据库编程2。本系统使用VB的DAO技术(Data Access Object)实现数据库的连接与管理,以此来管理图片。论文主要部分分为六部分。第一章和第二章介绍了设计思想和设计工具的简介;第三章确定系统的需求分析;第四章总体设计系统;第五章详细设计和编码;第六章总结设计的结果,指出优点和不足。对本次开发作一
2、总结。本软件通过数据库管理图片,将图片压缩存储在数据库中。通过使用本程序,可以方便的查询、添加、删除图片,实现方便、快捷、合理的管理图片。关键词:管理图片、管理系统、DAO、Visual Basic6.0AbstractAlong with fast the development of computer and the internet,the source of the pictures uses the advanced Database technology to edit、save and search pictures,and using convenient internets
3、technology to announce and to spread is made to major tendency in education and study field。To achieve Visual Basic 6.0 connecting to access by DAO,we developed a mini software named Pictures Database Management System。 The system uses DAO technology which bound with VB,to achieve Databases connecti
4、ng and management,so as to manage pictures。The thesis makes up of six parts。The first chapter and the second introduced the development idea and designing tools。The third chapter made an analysis to the systems needs。The forth chapter designed system overall。The fifth chapter made a particular desig
5、n and then coded。The sixth chapter summarized the development。The software manages pictures through Database,it compacts pictures then saves pictures。By this software it makes easy to search、edit、delete pictures,and it manages pictures convenient、fast、reasonable。 Key Words:manage pictures,management
6、 system,DAO,Visual Basic6.0。 目 录摘 要1Abstract2目 录4第一章 引言611设计思想612开发工具以及环境7第二章 数据库和开发语言821数据库简介822VB简介9第三章 系统需求分析1331需求分析1432功能需求1433开发环境15第四章 总体分析与设计1641系统分析1642系统流程图1743数据库设计18第五章 详细设计和编码2051工程设计20511工程compact_DB20512工程Thumb_DB2052模块设计21521声明API函数21522全局变量和常量声明23523一个全局函数2453用户自定义控件24531ucGraphicBu
7、tton控件24532ucPicScroll控件2554窗体设计26541frmCompact_DB窗体26542frmMain窗体27543frmAddToDb窗体30544frmComments窗体33545frmDB窗体34546frmFull窗体345.4.7frmView窗体3645编码实现37第六章结论38致谢39参考文献40第一章 引言随着计算机技术的迅猛发展,计算机广泛应用到各个领域以及各行各业。图片作为细节和实景的记录载体,在反映和体现信息时有着文字不可替代的直观性、生动性和客观性,是教学和研究中不可或缺的直观形象素材,同时读图也是获取知识、启迪心智的一种重要学习方式。图片信
8、息资料资源在教学和研究中日益凸显其作用且愈来愈受到重视。随着计算机及网络技术的不断发展,图片资源采用先进的数据库技术进行整理、保存和检索,并利用便捷的网络技术进行发布和传播成为其在教学和研究应用方面的主流趋势。11设计思想本软件的主要目的时方便使用者查找和存储图片,实现方便、快捷、高速的图片管理。图片应用压缩算法压缩存储在数据库中,以此来节省磁盘空间,用户可以存储和查看图库中的图片。方便对图片的处理和管理。12开发工具以及环境开发工具:VISUAL BASIC 6.0,MICROSOFT ACCESS 2000,WINDOWS API。Visual Basic,简称VB,是当今世界上应用最广泛
9、的编程语言之一,它也被公认为是编程效率最高的一种编程方法1。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。ACCESS 是MICROSOFT OFFICE集成软件之一,在VB编程中通常要与数据库打交道,对于数据量较小的应用,一般选用Access作为数据库,因为Access数据库比较简单,功能也比较齐全,数据的备份、拷贝都很方便,且程序发布时不需要额外单独安装其它的数据库管理软件。因此,在功能能够满足要求的条件下,Access数据库往往成为一些小型数据库软件的首选2。设计过程中需要调用WINDOWS API 函数以和系统交互信息,调用系
10、统方法。编程环境:windows XP,visual studio 6.0。第二章 数据库和开发语言21数据库简介数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像以及声音等。数据是所有计算机系统所要处理的对象。人们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组织成数据文件,用程序文件来调用。数据文件与程序文件保持着一定的对应关系。在计算机应用迅速发展的情况下,这种文件式方法便显出不足。比如,它使得数据通用性差,不便于移植,在不同文件中存储大量重复信息、浪费存储空间、更新不便等。数据库系统便能解决上述问题。
11、数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。 这段说明介绍的确非常详细,不过你可能看得头晕眼花了,其实简单地说数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称之为数据库管理系统。一般一个数据库系统(Database System)可分为数据库(Database)与数据管理系统(Database Management System,DBMS)两个部分2。本系统应用Microsoft Access数据库
12、来存储图片文件,在VB中使用DAO(Data Access Object)技术访问数据库。22VB简介Microsoft Visual Basic,它提供了开发 Microsoft Windows(R) 应用程序的最迅速、最简捷的方法。不论是 Microsoft Windows 应用程序的资深专业开发人员还是初学者,Visual Basic 都为他们提供了整套工具,以方便开发应用程序。Visual Basic?“Visual”指的是开发图形用户界面 (GUI) 的方法。不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。“Basic”指的是 BASIC
13、Beginners All-Purpose Symbolit Instruction Code) 语言,一种在计算技术发展历史上应用得最为广泛的语言。Visual Basic 在原有 BASIC 语言的基础上进一步发展,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能。Visual Basic 不仅是 Visual Basic 编程语言。Visual Basic 编程系统和 VBA 都使用这一语言。Visual Basic Scripting Edition (VBScr
14、ipt) 是广泛使用的脚本语言,它是 Visual Basic 语言的子集。这样,在学习 Visual Basic 中得到的经验可应用到所有这些领域中。从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过 Internet 的遍及全球分布式应用程序,都可在 Visual Basic 提供的工具中各取所需。从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过 Internet 的遍及全球分布式应数据访问特性允许对包括 Microsoft SQL Server 和其它企业数据库在内的大部分数据库格式建立数据库和前端应用程序,以及可调整的服务器端部件。有了 ActiveX(TM) 技术就
15、可使用其它应用程序提供的功能,例如 Microsoft Word 字处理器,Microsoft Excel 电子数据表及其它 Windows 应用程序。甚至可直接使用 VBP 或 VBE 创建的应用程序和对象。Internet 能力强大,使得您很容易在应用程序内通过 Internet 或 intranet访问文档和应用程序,或者创建 Internet 服务器应用程序。已完成的应用程序是使用Visual Basic 虚拟机真正 .exe 文件,您可以自由发布。 Visual Basic 有三种版本,可以满足不同的开发需要。 Visual Basic 学习版使编程人员轻松开发 Windows 和
16、Windows NT(R) 的应用程序。该版本包括所有的内部控件以及网格、选项卡和数据绑定控件。学习版提供的文档有 Learn VB Now CD 和包含全部联机文档的 Microsoft Developer Network CD。 专业版为专业编程人员提供了一整套功能完备的开发工具。该版本包括学习版的全部功能以及 ActiveX 控件、Internet Information Server Application Designer、集成的 Visual Database Tools 和 Data Environment、 Active Data Objects、和 Dynamic HTML
17、Page Designer。专业版提供的文档有 Visual Studio Professional Features 手册和包含全部联机文档的 Microsoft Developer Network CD。 企业版使得专业编程人员能够开发功能强大的组内分布式应用程序。该版本包括专业版的全部功能以及 Back Office 工具,例如 SQL Server、Microsoft Transaction Server、Internet Information Server、Visual SourceSafe、SNA Server,以及其他。企业版包括的印刷文档包括 Visual Studio En
18、terprise Features 手册以及包含全部联机文档的 Microsoft Developer Network CD。VB6.0企业版的特性应用程序性能评测器 (Application Performance Explorer)这个工具可使您用来测试所考虑的各种企业应用程序设计方案的运行时性能和资源加载特性。Internet Information Server 4.0Internet Information Server 是一个为那些必须与其它 BackOffice 部件和应用程序进行交互的新一代 World Wide Web 应用程序而提供的平台。 Microsoft Transa
19、ction Server 2.0Microsoft Transaction Server (MTS) 是一个基于部件的事务处理系统,可以用来开发、部署、和管理高性能的、可伸缩的、和强健的企业、Internet、和 intranet 服务器应用程序。 OLE DBOLE DB 是一组 OLE 接口,这些接口为应用程序访问保存在不同信息源的数据提供了统一的方法。这些接口还支持大量适合于数据源的 DBMS 功能,使它能够共享其数据。RemoteData 控件Remote Data 控件通过使用 RDO, Microsoft 远程数据对象来实现数据访问。SQL 调试T-SQL 调试器允许您从 Visu
20、al Basic 开发环境内部交互地调试用 Microsoft SQL Server 的 Transact SQL 特有语言编写的远程存储过程。SQL Server 6.5Microsoft SQL Server Programmers Toolkit 包含了 Transact-SQL、用 SQL 为 ODBC 编程、以及更多内容。存储过程编辑器SQL 编辑器允许您从 Visual Basic 开发环境内部创建和编辑用SQL Server 和 Oracle 编写的存储过程和触发器。UserConnection 设计器这个 ActiveX 设计器对编程数据访问提供设计时支持。在Visual Ba
21、sic 的这个版本中,此工具已经被上面列出的数据环境设计器所取代。Visual Component Manager这个工具可以保存、组织、并共享可重复使用的部件。它可以包含向导、ActiveX 组件、Database Connection 对象以及在 Visual Basic 工程中使用的许多其他组件。由于它是基于开放与可伸缩的 Microsoft Repository,因此适合对整个企业范围内的部件进行编目和重复使用。可视化数据库工具集成 (查询设计器和数据库设计器)使用这些设计器,您可以可视地创建并修改数据库结构描述和查询:创建 SQL Server 和 Oracle 数据库表、通过拖放来
22、创建视图、以及自动更改列的数据类型。Visual SourceSafe这个源-控件 (source-control) 工具跟踪并保存对文件的更改,使文件(例如代码模块)可以容易经济地重复使用。5第三章 系统需求分析需求分析是软件生存周期中重要的一步,只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件其它有效性需求。本章主要阐述了该系统的需求分析、功能要求、分析建模和开发环境。31需求分析图片数据库系统是应用数据库存储管理图片,实现高效
23、合理、规范和方便地管理图片的功能。本系统将实现以下需求:1、 启动系统时,系统可以自动搜索数据库并正常连接到数据库。2、 可以对数据库进行一系列操作(查询、添加、删除)。3、 可以显示图片详细信息。4、 对数据库进行压缩,以减少图片所占用的空间。5、 可以更新数据库列表。32功能需求根据以上需求分析,本系统的具体功能如下:1、 系统启动时首先自动加载默认数据库,显示系统主窗体界面。如果没有发现数据库则报告错误信息。将搜索到的数据库添加到frmDB窗体中,用于选择。12、 添加图片时单击add pictures向数据库中添加图片,此时调用另外一个添加图片窗体并连接到数据库。在添加图片窗体中,显
24、示和预览要添加的图片的信息,以方便向数据库中添加图片。向数据库的添加过程中显示添加的进度,进度条显示添加的百分比和所用时间。3、 搜索图片时本系统实现的是按图片名字搜索图片,确定是搜索全部文件夹还是当前文件夹;然后确定匹配字符串是首字符串匹配还是中间字符串匹配。工具栏分别显示数据库的第一个图片、最后一个、前一个和下一个等快捷按钮。4、 编辑图片时查看图片的信息,设置右键菜单对图片进行编辑处理。显示图片信息并能对图片进行处理,使图片以最好的格式显示。33开发环境本系统使用Microsoft公司的Microsoft Visual Studio6.0中Visual Basic作为开发工具。采用Vis
25、ual Basic语言进行程序设计。第四章 总体分析与设计总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题,因此总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分处组成系统的物理元素程序、文件、数据库、人工过程和问题等等。总体设计的一项重要任务是设计软件的结构。 41系统分析根据前面的设计思想进行分析,按照系统开发的基本观点进行分解,从内容上可对系统作如下划分:1系统应建立友好的界面,既要操作简单、直观、灵活,又要易于学习掌握和操作。2能构正确连接数据库,并实现数据库的基本功能,如:查询图片,显示图片信息,删除图片,添加图片,添加目录;能够按照图片名称查找并显示相关信
26、息,能够按照图片格式(如:gif,jpeg,bmp,ico等)进行查找和插入等操作。3在正确连接数据库,查询到用户相应的信息后,应在界面上显示相关的信息。能够调用windows图片查看器显示图片,以此来对图片进行一系列的windows下的处理。4能够对加入数据库的图片进行压缩操作,以减少图片所占用的空间。42系统流程图本图片数据库管理系统的流程图如图21。流程图简单地介绍了程序的运行过程以及主要功能。本系统将按照流程图进行设计。系统启动后,用户首先要添加数据库(在文件系统下搜索),然后系统自动载入图片数据库。至此,用户就可以对图片数据库进行一系列操作了(如:添加,删除,检索等)。点击相应的按钮
27、系统转入其他相应功能界面,最后数据库更新后,单击退出按钮退出系统。系统主界面搜索启动系统添加记录图片管理退出系统搜索数据库图41系统流程图43数据库设计本系统采用的是Mcrosoft Access数据库,拟建立Picture.mdb数据库文件,包含如下几个表文件:68tblCategories:用于存储目录文件信息,包括IDCat,Category两个字段,均为文本类型数据,Category记录目录名字,IDCat是与表tblPictures相关的字段。tblPictures:用于记录图片信息,包含IDpict,IDcat,Path,Properties,DAtaInDB,Thumb,Com
28、ments等字段。IDpict为自动编号类型,用于为数据库中的每一个图片编号,编号自动增加;IDcat文本类型,连接两个表的字段;Path备注类型,用于记录图片的路径;Properties文本类型,用于记录图片的大小和象素;DataInDB日期/时间类型,用于记录图片加入数据库的时间;Thumb为OLE对象类型,用于存储图片,图片以对象类型存储在数据库中,实际上是将图片转化程二进制数据存储;Comments备注类型数据,记录图片的名字(包括扩展名),此字段是Path的一部分。第五章 详细设计和编码详细设计阶段的根本目标使确定应该怎样具体地实现所要求的系统,经过这个阶段的工作,应该得出对目标系统
29、的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言些的程序。51工程设计511工程compact_DB工程compact_DB实现压缩数据库的功能。由于图片属于大对象类型(本系统采用OLE对象类型),在数据库中占用空间,当数据量很大的时候会占用大量空间,因此需要压缩图片以减少空间浪费。本系统使用的是MicroSoft VB 6.0下数据库引擎The Microsoft Jet database engine.,使用DBEngine.CompactDatabase方法对数据库进行压缩,DBEngine是DAO的一个成员。7512工程Thumb_DB实现数据库的所有功能,包括添加
30、数据库元素,显示数据库的内容,主窗体设计,数据库搜索及添加,全屏显示,浏览图片内容。工程Thumb_DB包括frmAddtodb,frmComments,frmDB,frmMain,frmView等几个窗体,分别实现相应的功能,各个窗体通过各个控件的方法和事件进行通信,实现多种功能。图片元素的处理功能均在工程Thumb_DB中实现,通过程序与数据库的连接,访问数据库的结果集。其间应用了SQL语句和Windows API函数实现了处理图片的功能。52模块设计521声明API函数系统中要用到几个Windows API(Application Program Interface)函数,用于调用系统函
31、数,以便是程序来控制Windows的各个部件(从桌面的外观到位一个新进程分配的内存)的外观和行为的一套预先第一的Windows函数。用VB写出的每行代码都会被VB转化成API函数传递给Windows。5声明的API函数如下: Public Declare Function timeGetTime Lib winmm () As Long,该函数获取Windows最近一次开机到现在的时间,以毫秒计数。Public Declare Function BitBlt Lib gdi32 (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long,
32、ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long,实现将一副位图从一个场景复制到另一个,源和目标DC之间必须兼容。返回值零表示失败,非零表示成功。Public Declare Function StretchBlt Lib gdi32 (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As L
33、ong, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long,实现将一副位图从一个场景复制到另一个,源和目标DC之间必须兼容。这个函数会在设备场景中定义一个目标矩形,并在位图中定义一个源图像。源矩形会根据需要进行伸缩,以便与目标矩形的大小相符。返回值零表示失败,非零表示成功。Public Declare Function
34、 GetStretchBltMode Lib gdi32 (ByVal hdc As Long) As Long,判断StretchBlt和StretchDIBits函数采用的伸缩模式。伸缩模式决定了Windows如何控制在伸缩过程中剔除的扫描线。返回值long,取得当前的伸缩模式,零表示出错。Public Declare Function SetStretchBltMode Lib gdi32 (ByVal hdc As Long, ByVal nStretchMode As Long) As Long,指定StretchBlt和StretchDIBits函数的伸缩模式。这种伸缩模式定义了W
35、indows如何对伸缩过程中剔除的扫描线进行控制。对于VB窗体和控件,倘若在API绘图过程中使用这个函数,建议恢复原来的StretchBlt模式。返回值long,返回上一次的伸缩模式值,零表示出错。Public Declare Function ShellExecute Lib shell32 Alias ShellExecuteA (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
36、 ByVal nShowCmd As Long) As Long,查找与指定文件关联在一起的程序的文件名。非零表示成功,零表示失败。Public Declare Function GetCursorPos Lib user32 (lpPoint As POINTAPI) As Long,获取鼠标指针的当前位置。返回值long,非零表示成功,零表示失败。522全局变量和常量声明Public Const THUMB_MAX_SIZE = 61,图片大小。Public tmpPath As StringPublic tmpPathFull As StringPublic tmpPathFull As
37、 String,图片路径。Public ThumbIndex As Long,当前图片索引,Public lastThumbIndex As Long,最后一个图片索引。Public tblID() As Long,图片的ID值,Public tblSt() As Long,图片状态值,1表示装载出错,2表示图片移走,3表示图片被删除。Public ThumbIsSelected As Boolean,判断图片是否被选中。Public CopyThumb As Boolean,删除拷贝标志。523一个全局函数Public Sub DrawBar(dstForm As Form, yPos As
38、 Single),用来渲染窗体的空白处,调用vb.form下的line函数,向空白处添加直线。53用户自定义控件531ucGraphicButton控件添加2个Image控件,用来表示窗体中的按钮,一个表示按下鼠标,一个表示表示松开鼠标。其中调用了几个事件:Private Sub UserControl_ReadProperties(PropBag As PropertyBag),当加载具有保存状态的对象的旧实例时,发生该事件。处理ReadProperties事件时,无论何时都应包括错误捕获,保护控件免受用户使用文本编辑器编辑包含保存数据的文件时,可能输入的无效属性值的影响。然而不能在事件中产
39、生错误,因为这样对容器是致命的,所以ReadProperties 事件过程中的任何错误捕获都不应产生错误。Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single),按下鼠标时发生的事件。Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single),鼠标松开时发生的事件。为了在给定的一个鼠标按钮按下或释放时指定将引起的一些操作,应当使用
40、MouseDown或者 MouseUp 事件过程。不同于 Click 和 DblClick 事件的是,MouseDown 和 MouseUp 事件能够区分出鼠标的左、右、和中间按钮。也可以为使用 SHIFT, CTRL, 和 ALT 等键盘换挡键编写用于鼠标键盘组合操作的代码。下列情况对 Click 和 DblClick 事件都适用: 如果鼠标按钮是当其指针在窗体或控件之上时被按下,则该对象将“捕获”鼠标并接收包括最后 MouseUp 事件在内的全部鼠标事件。这暗示了通过鼠标事件所返回的 x,y 鼠标指针坐标值,可以不总是在接收它们的对象的内部区域之内。如果鼠标被持续地按下,则第一次按下之后捕
41、获鼠标的对象将接收全部鼠标事件直至所有按钮被释放为止。Private Sub UserControl_Click(),单击鼠标事件。此事件是在一个对象上按下然后释放一个鼠标按钮时发生。它也会发生在一个控件的值改变时。532ucPicScroll控件该控件用于实现全屏以及显示图片。窗体添加两个image控件(cRelease,cGrub),用于实现全屏时鼠标放开和按下的状态。两个PictureBox控件(PicScroll,Picloaded),分别用于显示图片和设置背景颜色。程序调用此控件时,调用Private Sub UserControl_Initialize()方法初始化控件,其中加入R
42、eadZoomFactors方法读取控件的宽度和高度。调用Public Property Set Picture(ByVal New_Picture As StdPicture)方法,显示重新设置图片属性的图片。鼠标单击和双击时,分别发生Private Sub PicScroll_Click(),Private Sub PicScroll_DblClick()事件。鼠标按下、拖动、松开时,分别发生Private Sub PicScroll_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single),Priva
43、te Sub PicScroll_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single),Private Sub PicScroll_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)事件。调用Public Sub BestFit()过程图片最大化显示。调用Private Sub ReadZoomFactors()方法,实现图片的放大与缩小。调用Private Sub PictureSize(ByVal newWid
44、th As Integer, ByVal newHeight As Integer)方法,获取图片的高度、宽度和大小等属性,然后调用Public Property Set Picture(ByVal New_Picture As StdPicture)重新设置图片的各项属性,以实现图片放大、缩小的功能。54窗体设计541frmCompact_DB窗体本窗体主要用于压缩数据库。由于图片属于大对象,倘若直接存储到数据库中,会占用大量空间,因此需要对图片进行压缩,以减少数据库的压力。本系统调用DAO.ENGINE. CompactDatabase函数对一个封闭数据库进行压缩。需要引用微软数据访问对象
45、库,本系统引用的时Microsoft DAO 3.5.1 Object Library。添加3个label控件和1个filelistbox控件,用来显示数据库信息。本窗体如下图:图51压缩数据窗口542frmMain窗体添加一个toolbar控件,其中添加一些按钮,用来实现数据库的添加、删除、开始停止等一系列数据库操作。toolbar按钮包含在一个frameCommand框架控件中。添加框架控件frameComand2,其中添加6个复选框,分别表示:预览、载入图片、查看详细信息、说明、全部搜索、过滤;添加2个组合框,用来按文件名搜索图片。添加一个treeview控件TreeView,实现将数据
46、库中的数据绑定到treeview控件,此前必须先添加对当前版本的数据访问对象(DAO)的引用,即:Microsoft DAO 3.5.1 Object Library。添加一个Timer控件TimerShowPictures用来判断是否选定文件。添加3个DATA控件:DataCategories、DataPictures、DataCopy用来连接数据库对象。添加4个自定义控件ucGraphicButton,调用相应的事件,实现收缩、展开、刷新等功能。添加一个自定义控件ucPicScroll,用来预览图片。添加一个msflexgrid控件fullgrid用来显示分行按规则选中数据库中的图片。fu
47、llgird放在一个pictureBox中,pictureBox作为fullgird的背景。添加右键菜单功能,以便操作简单。应用菜单数组Opthumb()。窗体如下:图5-2主窗体启动程序后,首先获得默认数据库(Picture.mdb),然后加载frmDB窗体搜索当前文件下的数据库,获取数据库信息;再调用Fill_TreeCategories函数,向treeview中添加数据库信息,并初始化fullgird。Private Sub Fill_TreeCategories()函数首先获得当前数据库名字,清空treeview中的目录,然后刷新结果集,再向treeview中添加根节点,即:数据库。添加目录列表,搜索数据库结果集,循环添加到treeview中。向fullgird中添加图片:先初始化定时器,获得数据库中IDCat字段值,然后清空fullgird并初始化滚动条。打开数据库结果集,使用SQL查询语言向DataPictures.RecordSource中添加数据库中的图片信息;然后向结果集中添加图片,fullgrid中显示图片,调用ThumbGrid_MouseDown鼠标