第10章ActiveX 控件 Visual Basic的控件被分为两大类,分别是标准控件和ActiveX控件。默认情况下,在Visual Basic工具箱内的控件都是标准控件。而后来通过“部件”对话框添加进来的控件则都属于ActiveX 控件,例如前面所学到的工具栏控件、状态栏控件、RichTextBox控件等等。本章主要介绍关于ActiveX 控件的相关知识。
10.1 ActiveX 控件概述 ActiveX控件可以使用各种程序设计语言来开发,所有开发出来的控件都要遵循统一的标准。ActiveX控件可以由系统提供,也可以由第三方软件生产者提供,还可以由用户自己开发。 第三方软件生产者开发的ActiveX控件通常以文件的形式存放,其扩展名为.ocx。有些ActiveX控件的发布因为做了安装文件,所以当安装后在Visual Basic的“部件”对话框(控件选项卡)中就可以看到这些控件的名称列表。
10.2 创建自己的控件 在开发应用程序时,如果Visual Basic中没有合适的控件能够使用,则可以采用两种方案解决这一问题。第一种方案是购买商业控件;第二种方案是自己动手创建一个ActiveX控件。本节将介绍如何自己动手创建ActiveX控件,并使用这一控件的相关知识。
10.2.1 手动创建ActiveX 控件 创建ActiveX 控件有两种方法:一是手动创建,二是利用Visual Basic提供的向导程序定制ActiveX 控件。在开发应用程序时,经常会将开发单位标志或软件的标志放在软件的大部分窗口中。此时在每个窗口中一个一个的加入图像框,再设置其Picture属性添加图片文件会浪费很多不必要的时间和精力。下面通过设计一个能显示软件标志的控件,说明手动创建ActiveX 控件的方法。
10.2.2 使用自己创建的ActiveX 控件 (1)启动Visual Basic,并新建一个标准EXE工程。 (2)在工具箱中单击鼠标右键,在快捷菜单中选择“部件”菜单项。 (3)在打开的“部件”对话框“控件”选项卡中使用“浏览”按钮,从硬盘中找到并选择MyControl.ocx文件。这样就可以在控件列表中看到自己创建的ActiveX 控件了。 (4)在名称列表框中选择该控件并在其前面的复选框中打勾,单击“确定”按钮后,工具箱中就会多出一个控件, (5)同使用其他控件一样,将该ActiveX 控件画到窗体上。 (6)运行程序,并单击该控件后如图10.10所示。
10.2.3 使用向导定制控件 (具体内容请参照本书)
10.3 日历控件(Calendar) 在应用程序的输入界面经常会遇到出生日期、生产日期、入住日期等需要输入日期的文本框。此时,怎样控制用户按照软件的日期格式输入日期成了一个让人头疼的问题。幸运的是Visual Basic为使用者提供了一种选择日期的控件——日历控件。该控件也是一个ActiveX控件,添加到工具箱中的方法是:使用如前所述的方法打开 “部件”对话框(“控件”选项卡),从列表中选择“Microsoft Calendar Control 8.0”,确定后就可以在工具箱中看到多出来的日历控件的图标。
10.3.1 通过日历控件获得日期 (具体内容请参照本书)
10.3.2 日历控件独有的事件 Calendar控件有几个独有的事件,如NewYear、NewMonth等。NewYear事件当日历控件中的年份被更改时触发;NewMonth事件当日历控件中的月份被更改时触发。而更改日期时会先后触发两个事件分别是BeforeUpdate和AfterUpdate。
10.4 通用对话框控件(CommonDialog) Visual Basic的通用对话框CommonDialog控件提供了一组基于Windows的标准对话框界面。使用其可以减轻编程工作量。此通用对话框有6种类型:打开对话框(Open)、另存为对话框(Save As)、字体对话框(Font)、颜色对话框(Color)、打印对话框(Print)、帮助对话框(Help)等。通过设置CommonDialog控件的Action属性可以显示指定类型的对话框。此外,也可以使用控件的Show方法显示指定类型的对话框。
10.4.1 使用【打开】对话框 (具体内容请参照本书)
10.4.2 使用【保存】对话框 “保存”对话框和“打开”对话框实际上是一种对话框,所以它们的属性设置和意义是一样的。上一节,介绍了通过“属性页”对话框设置CommonDialog控件属性的方法,下面介绍使用程序设置这些属性的方法。(具体内容请参照本书)
10.4.3 使用【颜色】对话框 本例界面由两个对象组成,分别为窗体Form1和CommonDialog控件cd1,
10.4.4 使用【字体】对话框 要显示字体对话框,首先应该设置Flag属性。
10.4.5 使用【打印】对话框 关于“打印”对话框的常用属性,(具体内容请参照本书)
10.4.6 对单击“取消”按钮的处理 所有类型的对话框中都有一个“取消”按钮。如果单击“取消”按钮,就应该提前结束事件过程(或者跳过执行某段代码),这样会避免出现错误。