330 likes | 518 Views
第 8 章 ActiveX 控件初步应用. 8.1 ActiveX 控件概述 8.2 ActiveX 控件 8.3 建立和使用 ActiveX 文档 8.4 综合实例 8.5 本章小结 习题. 8.1 ActiveX 控件概述. ActiveX 控件的来源包括 3 个反面:系统提供,第三方厂商提供,用户开发。
E N D
第8章 ActiveX控件初步应用 • 8.1 ActiveX控件概述 • 8.2 ActiveX控件 • 8.3 建立和使用ActiveX文档 • 8.4 综合实例 • 8.5本章小结 • 习题
8.1 ActiveX控件概述 ActiveX控件的来源包括3个反面:系统提供,第三方厂商提供,用户开发。 ActiveX控件包含:工具栏(Toolbar)、数据组合框(DataCombo)、数据列表框(DataList)等。不同版本的Visual Basic提供的控件数量不同,其中学习版提供的控件比较少,专业版和企业版提供的控件比较 返回
8.2 ActiveX控件 • 8.2.1ActiveX控件的使用 • 8.2.2 ActiveX控件的创建 • 8.2.3 通过向导制作ActiveX控件 返回
8.2.1ActiveX控件的使用 ActiveX控件使用前,必须将其添加到工具箱中。操作步骤如下: 在菜单栏上选择“工程→部件”选项,或在工具箱中单击鼠标右键,在弹出的快捷菜单中选择“部件”选项,弹出“部件”对话框,。该对话框中列出所有可以使用的部件,包括“控件”、“设计器”和“可插入对象”等。 在“控件”选项卡中选择要插入的控件,被选择中控件名称左边的复选框中 有一个标记“√”。 单击“确定“按钮,关闭“部件”对话框,被中的控件出现在工具箱中。 例如,在“部件”对话框的“控件”选项卡中选择“Microsoft Windows Common Controls6.0”并将其添加到工具箱中,工具箱中即可增加工具栏(ToolBar)、状态栏(StatusBar)、进度条(ProgressBar)、树状视图(TreeView)、列表视图(ListView)、滑快(Slider)等9个控件。 1.工具栏控件(ToolBar) 工具栏是按钮对象的集合,默认名称为ToolBar。工具栏控件的使用可参阅5.3节中的介绍。 2.状态栏控件(StatusBar) 状态栏用于显示应用程序的运行状态,默认名称为StatusBar。状态栏控件的使用可参阅5.3节中的介绍。
3.进度条(ProgressBar) 进度条控件是一个给用户提供操作进程的动态指示器(如显示文件传输操作完成百分比)。操作过程中,该控件显示一条色带,这条色带随着时间的增加而伸长。 创建进度条的操作步骤如下: 在工具箱中选择进度条控件并画到窗体中,创建一个进度条。 按需要报告的操作范围设置该控件的属性值。 几个主要的属性: ①Height属性:设置进度条的高度 ②Width属性:设置进度条的宽度。通常进度条的宽度是高度的几备。 ③Value属性:设置或检索进度条被填充的程度。 ④Min属性:设置允许Value属性使用的最小值(下限),默认为0。 ⑤Max属性:设置允许Value属性使用的最大值(上限),默认为100。
4.数状视图(TreeView) TreeView控件显示Node对象的分层列表,每个Node对象均由一个标签和一个可选的位图组成。TreeView一般用于显示文档标题、索引入口、磁盘上的文件和目录或能被有效地分层显示的其它各种信息。类似于Win98的资源管理器的界面就可以用该控件来实现。 在设计时可以通过TreeView控件的属性页来指定控件的部分属性。在TreeView控件的属性中,比较重要的有如下属性: (1)样式(Style)属性 返回或设置Node对象的图形类型(图像、文本、+/-号、直线)以及出现在TreeView控件中每一Node对象上的文本类型。 (2)行样式(LineStyle)属性 返回或设置在Node对象之间显示的线的样式。 注意:若Style属性设置为包含直线的值,则LineStyle属性就确定了直线的外观。如果Style属性设置为不含直线的值,则LineStyle属性将被忽略。 (3)imageList属性: 读出或设置与本控件相联系的imageLis控件。 (4)Indentation属性: 设置各个新的Node对象缩进的量度。 (5)LabelEdit属性: 设置用户是否编辑本控件中Node对象的标签。它有0和1两个属性值,0代表自动编辑标签,1代表人工编辑标签。 (6)Nodes属性: 设置访问控件的NodeS对象集合。
5.列表视图(ListView) ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以: ①单击对象触发ColumnClick事件并根据数据项目将项目排序。 ②拖动对象的右边框来调整列宽度。 ③在报表视图中隐藏ColumnHeader对象。 ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。 ColumnHeader对象的SubItemIndex属性 该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。 ListItem对象的SubItems属性
返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。 ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。 ListView控件的View属性 ListView控件可使用四种不同视图显示项目,这可以用View属性来确定。该属性返回或设置ListView控件中ListItem对象的外观。 ListView控件的SortOrder,SortKey和Sorted属性 控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder,Sorted和SortKey属性。 SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序。 SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序。 Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值。 下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序。
8.2.2 ActiveX控件的创建 建立Active控件的步骤如下: 1、创建Active控件工程 通过创建新的Active控件工程开始创建Active控件。在该工程中可以创建任意数量的Active控件。为了便于使用Active控件,应当将相关的控件组合到一个工程中。 创建一个Active控件时,将显示默认的用户控件。用户控件与窗体类似,其中包含用于控件客户接口的窗口和用于处理控件事件的代码。如果要在工程内定义多个控件,可在菜单栏上选择“工程→添加用户控件”命令,即可为工程中定义的每个控件添加一个用户控件。 2、创建控件的用户接口。 在类似窗体的UserControl对象上设计控件界面,在UserControl对象上可以加入现有的各种控件。 创建控件的用户接口有3种基本方式: 组合已有控件的方式:通过将几个其他控件组合到新控件来建立控件。用于组成新控件的控件称为组元控件。例如,可以用文本框和滚动条建立一个微调控件。 增强已有控件的方式:通过向已有控件添加属性、方法和事件来建立增强的控件。例如,建立一个用户的文本框控件,该文本框提供标准文本框的全部功能,但只允许输入数值。 重新开始建立控件的方式:建立的控件称为客户设计的控件。在用户需要特效的接口或其他特殊要求时,应当重新开始建立控件。 在用户控件窗口中建立控件的用户接口时,可以按新控件的要求添加或设计控件,也可以向用户控件添加除了OLE容器外的任意控件。用户窗口激活时,该控件在工具箱中无效。
3.编写控件的程序代码 一般来说,控件的开发者希望控件能按设计要求提供一组基本功能;而控件的终端用户可能希望控件能具有某种行为的能力(单击某个按钮可实现向一个文本框输入)。可以通过向控件添加代码来满足这些需求。 Visual Basic提供了Active控件界面向导,以帮助用户映射属性、方法和事件。只要在菜单上选择“外接程序→外接程序管理器”命令,在弹出“外接程序管理器”对话框中选择“VB6.0 Active控件接口向导”并单击“确定”按钮,即可在“外接程序”菜单中添加一个菜单项“Active控件接口向导”。 在“Active控件接口向导”的帮助下,用户可创建Active控件工程和控件的用户接口,然后用该向导帮助建立控件的全部代码。
4.为控件添加属性、事件和方法 控件添加方法与创建类的方法相同。 UserControl对象及其子控件的属性,对最终用户是不可见的。用户开始创建控件时,VB赋予它一些简单的属性,如Name、Visible等。其中最主要的是Name属性,在使用控件时用于标识控件。 控件的其他属性一般通过简单显示UserControl对象或其子控件的现有属性来实现。 在“工程”菜单中选择当前工程的属性选项,可以设置Active控件工程的属性。
5.建立属性页 属性页不是一个控件必须有的,但建立属性页有助于控件的使用。几乎VB提供的所有Active控件都有属性页,VB也为用户设计的Active控件准备了4个标准属性页:StandardFont、StandardColor、StandardPicture和StandardDataFormat。如果要使用这些属性页,应在UserControl1的属性页中选种PropertiesPage属性,弹出的“连接属性页”对话框,如图所示。从中选择要用的属性页。
在测试窗体中添加Active控件并选种该控件,在菜单栏上选择“视图→属性页”选项,弹出该控件的“属性页”对话框,如图所示。该对话框包含4个选项卡,分别对应4个属性页。系统自动把字体类型的属性对应到StandardFont;把颜色类型的属性对应到StandardColor;把图片类型的属性对应到StandardPicture;StandarddataFormat用来数据格式。在测试窗体中添加Active控件并选种该控件,在菜单栏上选择“视图→属性页”选项,弹出该控件的“属性页”对话框,如图所示。该对话框包含4个选项卡,分别对应4个属性页。系统自动把字体类型的属性对应到StandardFont;把颜色类型的属性对应到StandardColor;把图片类型的属性对应到StandardPicture;StandarddataFormat用来数据格式。 如果VB提供的标准属性页不能满足要求,则用户可以定制自己的属性页。
6.测试控件 为了能在制作控件的同时进行测试,提前建立一个“标准EXE”测试工程,与Active控件工程组成工程组,随时测试控件。 测试Active控件的操作步骤如下: (1)在菜单栏上选择“文件→添加工程”选项,以便向工程组添加测试工程。可以添加已有的工程或新的工程。通过向集成开发环境添加另一个工程而创建了可以保存的工程组。然后可以打开工程组(而不是单一的工程),以便打开集成开发环境中的工程。 (2)在“工程”窗口中选择要测试的工程并设置属性。 (3)关闭Active控件工程。 (4)向测试工程中的窗体添加一个控件。 (5)将测试工程设置为启动工程。 (6)运行测试工程。演示控件将如何为终端用户操作,可根据需要编辑和调试控件。 (7)关闭和再打开工程。测试设计时属性的保存。
7.将控件编译为.OCX文件 若控件对于一个特殊应用程序是私有的,可保留在工程而不必分别编译;如果控件要提供给其他开发人员,则不必编译和分配. 8.发布控件 一旦编译了Active控件工程,就可以把该Active控件工程发布给其他程序员。随后,这些程序员就可以向应用程序中的任意窗体添加控件。 在大多数的情况下,控件使用者仅仅取得.OCX文件并不能使用控件。因为VB创建的Active控件需要VB运行的DLL,如果控件使用了子控件,可能还需要其他的支持文件。为了确保发布所有必要的支持文件,最好使用安装向导,生成Active控件的安装程序。
8.2.3 通过向导制作ActiveX控件 为了减轻用户在制作ActiveX控件时为添加属性、事件、方法或属性页所作的编码工作,VB提供了ActiveX控件接口向导。 ActiveX控件接口向导可以引导用户创建控件的属性、事件和方法,并生成相应的基本代码,但不用创建用户界面。使用ActiveX控件接口向导前,必须创建一个具有目标界面元素的ActiveX控件。 利用ActiveX控件接口向导和属性页向导可以添加各种需要的属性、方法和事件并设置其属性。
1.ActiveX控件界面向导 ActiveX控件界面向导引导用户快速地创建控件的属性、事件和方法,生成相应的基本代码,但界面仍然需要自己制作。 用向导制作ActiveX控件的操作步骤如下: (1)在菜单栏上选择“文件→新建工程”选项,在弹出的“新建工程”对话框中选择“ActiveX控件”图标,单击“确定”按钮,生成一个新的工程和UserControl1控件。 (2)在菜单栏上选择“工程→工程1属性”选项,在弹出的“工程1—工程属性”对话框。选择“通用”选项卡并填写相关内容,单击“确定”按钮。 (3)在工程中双击UserControl1,使其处于激活状态。 (4)在属性窗口中将UserControl1的Name属性修改为所需要的名字。 (5)按需求在对象窗口中添加一些控件。 (6)在菜单栏上选择“工程→添加用户控件”选项,在弹出的对话框中选择“VB ActiveX控件用户界面向导”选项,弹出“添加用户控件”对话框。 (7)单击“打开”按钮,进入VB ActiveX控件界面向导程序。在该向导的指导下,生成与控件有关的属性、方法和代码,完成ActiveX控件的生成。
2.属性页向导 属性页向导能为用户控件建立各种属性也提供帮助。 是一个外接程序。如果“外接程序”菜单中没有“属性页向导”,应使用“外接程序”菜单中的“外接程序管理器”命令加载
8.3 建立和使用ActiveX文档 ActiveX文档是信息的特殊显示。ActiveX文档可以说是一个电子表格、图形、图表或数据的任意形式显示。ActiveX文档类似于窗体,通过向工程添加用户文档,可以在工程中创建ActiveX文档。ActiveX文档服务器是用户文档的ActiveX EXE或ActiveX DLL工程。ActiveX文档服务器提供给另一应用程序ActiveX文档对象。ActiveX文档容器可以请求ActiveX文档并显示它。 ActiveX文档使用户能建立可以在网上传输的应用程序,在笔记本电脑上或在遥远的额办公室甚至在家中,都可以通过Wwb浏览器来使用。但是ActiveX文档不等于Web网页,而是一个应用程序。另外,用户可以通过浏览器把ActiveX文档和Web网页紧密地结合在一起。 返回
建立ActiveX文档服务器的一般步骤如下。 • 1、创建ActiveX文档文档服务器工程 • 创建新的ActiveX服务器工程,或把一个已有工程转换成ActiveX文档服务器,可建立ActiveX文档。该工程含有ActiveX文档。 • 操作步骤如下: • 启动一个新的ActiveX文档DLL或ActiveX文档EXE工程,把一个用户文档作为默认模块插入工程中:或启动一个新的ActiveX文档DLL或ActiveX文档EXE工程,将一个类模块作为默认模块插入工程中。 • 在菜单上选择“工程-----添加用户文档”命令,添加用户文档;或打开已有工程,将该工程转换为ActiveX文档服务器工程。 • 在菜单上选择“工程-----添加属性页”命令,将工程类型更改为ActiveX EXE或ActiveX DLL。 • 在菜单上选择“外接程序-----外接程序管理器”命令,在“外接程序管理器”对话框中选择“VB6 ActiveX文档移植向导”并单击“确定”按钮。此时,“外接程序”菜单中添加一个菜单项“ActiveX文档移植向导”。 • 在菜单上选择“外接程序----- ActiveX文档移植向导”命令,遵循该向导的指令将工程中的窗体转换为ActiveX文档。无论是按哪些步骤执行该进程,都应当在工程中ActiveX文档服务器工程和至少有一个用户文档。
2、建立用户文档 可以向ActiveX文档服务器添加一个或多个用户文档,每个用户文档定义了ActiveX文档用户接口。建立用户文档的方法类似与建立窗体,并可以向窗体中添加控件。 用户文档保存在扩展名为.dob的文件中。如果用户文档含有该图形数据,该数据保存在扩展名为.dox的文件中.这两种文件类型与用于窗体的.frm和.frx文件类似。 程序设计时,可以向窗体添加代码。同样,也可以在用户文档添加代码。但是,用户文档不能加载和卸载。向窗体Load和Unload事件过程添加的代码,通常也可以添加给用户文档的Initialize和Terminate事件。 3、开发ActiveX文档服务器的代码 可以在ActiveX文档服务器工程添加任意的其他窗体、类模块和标准模块。这些附加模块可以向用户提供ActiveX文档的支持。
4、设定用户文档属性 用户文档有效的属性与提供给窗体的属性类似。此外,HscrollSmallChange属性和VscrollSmallChange属性仅对用户文档有效。这两个属性标识用户在ActiveX文档容器的视区内(滚动时)用户文档将滚动过的距离(一twin为单位)。 5、设置ActiveX文档服务器的工程属性 在“工程”菜单中选择该工程属性命令,定义文档服务器的工程设置。
6、测试ActiveX文档 由于测试ActiveX文档需要ActiveX文档容器,因此不能简单地通过运行ActiveX文档服务器工程来测试ActiveX文档。运行诸如Internet Explorer的ActiveX文档容器应用程序可以测试ActiveX文档。 ActiveX文档容器应用程序从ActiveX文档服务器请求ActiveX文档。带有扩展名的.vbd的Visual Basic文档保存ActiveX文档的定义及其相关的ActiveX文档服务器。打开ActiveX文档容器应用程序中的Visual Basic文档时,该容器应用程序读取文件并决定实现哪个ActiveX文档服务器,以及从该服务器请求哪个ActiveX文档。因此,可以把Visual Basic文档作为对相应ActiveX文档的引用。
测试ActiveX文档的操作步骤如下: • 运行ActiveX文档服务器工程。该工程不是处于运行模式,应确认Start Mode工程属性设置为ActiveX组件。运行工程时,临时性的Visual Basic文档在工程中每个ActiveX文档的Visual Basic目录中创建。用户文档的Name属性作用与Visual Basic文档文件名,扩展名为.vbd. • 启动ActiveX容器应用程序.如果Web浏览器支持ActiveX文档,则可以使用ActiveX文档 • 用浏览器的Open功能打开.vbp文件。这些文件将驻留在Visual Basic目录中。打开文件时,ActiveX文档应当出现在浏览器内。 • 测试ActiveX文档。使用ActiveX文档的功能。由于正在按设计模式运行工程,因而可以像处理其他工程一样设置断点、观察点以及进行其他测试。
7、编译ActiveX文档服务器 在菜单上选择“工程-----生成工程”选项,Visual Basic将指定工程编译为.EXE或.DLL文件,并为ActiveX文档服务器中的每个用户文档创建文档文件(.VBD).这些文件将创建在已编译的ActiveX文档服务器的同一目录中. ActiveX文档文件可以重命名.用上述步骤创建的.vbd文件也可以测试已编译的ActiveX文档服务器. 8、发布ActiveX文档和服务器 ActiveX文档服务器编译后,就可以对其进行发布或向Web结点添加文件。随后,其他用户可以从任意的ActiveX文档容器浏览ActiveX文档。
8.4 综合实例 首先新建一个工程。在窗体中引入1个图像列表框,1个ListView控件,两个单选按钮控件和一个状态栏控件。引入控件的窗体如图所示。 其中,ImageList控件为ListView控件提供图形,状态栏显示某一列表框项目的有关信息,单选按钮用来选择是否排序。 返回
按下面步骤设置个控件属性: • (1)设置窗体属性 • 激活窗体的[属性]窗口,设置[名称]为MySetup,Caption属性为“控制面板示例”,其它属性采用默认值。 • (2)设置状态栏属性 • 激活[属性页]窗口,单击[通用]选项卡,设置[样式]属性值为“1-sbrSimple”。这时状态条以简单形式出现。 • (3)设置单选按钮属性 • 设置Option1的Caption属性为“排序”,Option2的Caption属性为“不排”,其它属性采用默认值。 • (4)设置ListView控件属性
按以下步骤设置ListView控件的属性: ①激活ListView控件的[属性页]对话框,。[属性页]对话框的[通用]选项卡选用系统默认设置。 ②单击[图像列表]选项卡,其中的[普通]列表框用来设置与ListView控件相连的ImageList控件,这里设置为ImageList1,其他采用缺省设置. ③单击[分类]选项卡,可以在这个窗口中是否排序、排序的关键字、排序的顺序等。这里不做设置。 ④其他几个选项卡不常用,就不介绍了。
(5)设置ImageList控件 为了使ImageList控件能显示图标,还需在ImageList控件中引入几个图像,设置结果如图所示。
添加程序代码(略): 程序运行后界面如图所示,窗体下面的状态栏显示了对象的个数。当调整窗体的大小时,界面同样同样美观 。
当将[排序]按钮设置为真,并且选中[显示器]一项时,界面如图8-21所示。可以看到,列表项的排列方式发生了变化,状态栏的内容也发生了变化。当将[排序]按钮设置为真,并且选中[显示器]一项时,界面如图8-21所示。可以看到,列表项的排列方式发生了变化,状态栏的内容也发生了变化。
8.5本章小结 Visual Basic 应用程序的界面主要由控件构成。Visual Basic工具箱提供了命令控件、文本框等常用控件。这些控件总是出现在工具箱中,可以直接使用,这种控件称为标准控件,又称内部控件。标准控件包含在Visual Basic的.EXE文件中,系统安装后,即可直接使用。 Visual Basic工具箱中只有20个标准控件,对于复杂的应用程序,这些控件是不够的。ActiveX控件以单独的文件存在,是Visual Basic工具箱的扩充。ActiveX控件可以被添加到工具箱中,也可以从工具箱中删除。ActiveX控件的使用方法与其他标准控件完全一样。在程序中添加后,即可成为开发和运行环境的一部分。 ActiveX控件包含:工具栏(Toolbar)、数据组合框(DataCombo)、数据列表框(DataList)等。 创建ActiveX控件的步骤包括: (1)创建“ActiveX 控件工程(2)在UserControl1对象上添加可能得到的各种对象。(3)编写程序代码。 (4)参考类的创建,为控件添加属性、事件和方法。 (5)如果需要,可以为控件建立属性页。 (6)建立一个标准的EXE工程测试所建立的ActiveX 控件。 (7)编译成OCX文件发布 返回
习题 • 一、思考题 • 说明创建Active控件的主要步骤。 • 试说明Active控件与标准控件的差异。 • 如何在应用程序中使用工具栏和状态栏控件?试举例说明。 • 通过向导完成Active控件Add_Name的制作。 • 二、程序设计题 • 1.用工具栏控件设计一个工具栏,其功能和界面自定。 • 2.用状态栏控件设计一个状态栏,其功能和界面自定。 • 3.创建一个能显示日期和时间的Active控件。 • 4.设计一个输入学生信息的Active控件,该控件可以输入姓名、性别、年龄和机关信息,如果输入的姓名与已输入姓名不重名,即添加到学生名清单中 返回