图1-16 工程资源管理器窗口(展开)
在工程资源管理器窗口,括号内是工程、窗体、程序模块、类模块等的存盘文件名,括号外是相应的名字(即Name属性,见后)。每个工程左侧都有一个方框,当方框内为“-”号时,该工程处于“展开”状态(见图1-16)。此时,如果单击“-”号方框,则变为“折叠”状态,方框内的“-”号变为“+”号,如图1-17所示。

图1-17 工程资源管理器窗口(折叠)
在工程管理器窗口还有三个按钮,分别为“查看代码”、“查看对象”和“切换文件夹”。其中的“查看代码”按钮
用Visual Basic设计应用程序时,通常先设计窗体(即界面),然后再编写程序。设计完窗体后,只要双击窗体的任一部位,就可以切换到代码窗口,与单击“查看代码”按钮的作用相同。
属性窗口是针对窗体和控件设置的。在Visual Basic中,窗体和控件被称为对象,每个对象都可以用一组属性来刻画其特征。属性窗口包含了窗体或所选控件在设计阶段有效的所有属性描述。通过属性窗口,用户可以对窗体或控件的属性重新设置。如图1-2所示,即为窗体的属性窗口,在此窗口中,用户可以更改窗体的标题栏、背景颜色、边框式样等属性。如要改变窗体的标题栏,可以找到窗体的Caption属性,输入用户要求的标题文本。
属性窗口的标题方式有两种,即属性按字母顺序方式排列和按照分类方式排列,默认方式为字母顺序。
|
|
工具箱用于集中放置设计阶段常用的标准控件图标。操作时,用户可从工具箱中选取所需要的控件图标,然后在窗体窗口中适当位置上画出该图标,从而生成应用程序的人机界面。
Visual Basic启动时,工程中装载一些常用控件,此时工具箱中包含如图1-18所示的指针图标和20个标准控件图标。用户也可以把自己需要的控件随时加载到工具箱上。例如,要添加一个MMControl多媒体控件,可选择菜单“工程/部件...”,在弹出的对话框中选择“Microsoft Multimedia Control 6.0”项,并单击“确定”按钮,向工具箱中添加该控件。
代码窗口是用户输入事件过程代码和进行调试的地方。在程序设计阶段双击窗体任何部位就会弹出如图1-19所示的代码窗口。它是由以下几个部分组成的:
①标题栏:显示应用程序的工程名称和窗体名称;
②对象框:下拉式组合框,显示当前窗体中现有的对象列表和当前正编辑的对象名;
③事件框:下拉式组合框,显示当前对象可用的事件列表和正在编辑的事件过程名;
④代码框:输入代码的地方。


图1-19 Visual Basic 集成环境的代码窗口
进入代码窗口时,通常会自动显示对象的一个默认事件过程框架,如上图代码窗口中,就显示了窗体对象的Load事件过程,此时用户可在其中添加事件过程代码。若要更改编程的对象,或者是更改对象所要响应的事件,可通过选择对象框和事件框的选项来实现。当事件过程代码编写完毕后,单击代码窗口的关闭按钮,即可将其关闭。若要观察运行效果,按热键F5或单击工具栏上的启动按钮
通过选择“视图/代码窗口”菜单项,或在工程资源管理器中单击“查看代码”按钮也可进入代码窗口。
立即窗口是一个对运算表达式立即处理的环境,其主要用途有两个,一个是在编写程序的时候,测试某个不熟悉的命令或函数的用法。另外,也是最常见的,则是用来帮忙找出程序的错误。

图1-20 Visual Basic 集成环境的立即窗口
窗体布局窗口一般位于属性窗口的下方,屏幕的右下角处,用于确定应用程序窗体在屏幕上的显示位置。在窗体布局窗口内,有一虚拟的显示器屏幕,在屏幕上显示的窗体表明了当前窗体的相对大小和相对位置。将鼠标定位到该窗体上,按下鼠标左键,将其拖到显示器屏幕的所需位置,以后程序运行时,该窗体就会显示在真实屏幕的对应位置。
在多窗体应用程序中,常常通过窗体布局窗口来指定每个窗体相对于主窗体的位置。
随着程序开发工具越来越复杂,把所有和程序设计相关的信息,尤其是和控件相关的信息全部记忆是不可能的,所以所有的程序开发工具都会附有使用手册及参考手册,参考手册就是记载开发工具相关的各种信息。
由于信息量相当庞大,微软并没有把参考手册印制成书本,而是把它们收录在光盘中,以联机手册的形式附在VB当中。
想要查阅联机手册的内容有两种方法:一种是在“开始”菜单中点击“Microsoft Developer Network”→“MSDN Library Visual Studio 6.0”。另一种是在VB的操作环境中,点击想要查阅说明的对象或是程序语句后,按下“F1”键,即可进入Visual Basic的联机手册。需要说明的是在安装Visual Basic时,必须同时安装MSDN Library,才可以在设计Visual Basic程序时,使用它的联机手册。
MSDN Library中所附的内容不只有VB的相关内容。还有微软的其他开发工具的技术文件也在其中,视安装时的选项而定。
使用VB编写Windows应用程序时,初学者往往会遇到这样的问题:VB应用程序到底是什么样?编写VB应用程序的具体过程是什么?本节从程序和程序设计的角度出发,回答上述问题。
什么是程序(Program)?打个比方,比如:人们开会,常事先制定“大会程序”,如第一项“全体起立,唱国歌”;第二项“通过主席团名单”;第三项“领导作报告”……可见,程序包含两个方面的内容:①要作什么事;②按什么顺序进行。计算机程序就是为使计算机完成一个预定的任务而设计的一系列语句或指令。要让计算机实现一组操作,必须先编写程序,然后使计算机执行此程序。
下面是一段Visual Basic程序:
a=2:b=4
t=a:a=b:b=t
PRINT a,b
这段程序的作用是使变量a的值为2,变量b的值为4,通过中间变量t交换变量a和b的值,最后输出变量a和b的值。
程序的规模可大可小。上面是一个很小的程序。最短的程序只有一行。程序的规模和内容完全取决于所要解决的问题。
什么是程序设计(Programming)?设计、书写及检查调试程序的过程称为程序设计。应该指出:程序设计不仅在纸上书写程序的过程,它还应当包括:分析问题确定解题方法、写出具体操作步骤(即设计算法,包括画流程图)、用高级语言编写程序、上机调试程序、修改程序、运行程序、整理结果以及书写程序文档等全过程。
VB应用程序主要由窗体模块、标准模块以及可选的类模块等组成。
①窗体模块(文件扩展名为.frm)
窗体模块包含窗体级的常量、变量和外部过程的声明,窗体及其控件的文本描述、属性数据,以及每个窗体、每个控件对应的事件驱动程序。窗体模块还包含标准过程,它对来自任何事件的过程调用都作出响应。
②标准模块(文件扩展名为.bas)
如果一个过程用来响应几个不同对象的事件,那么最好将该过程放入标准模块中,这样即可以减少编程量,又可提高代码的可读性和修改性。标准模块中可包含变量、常数、外部过程和全局过程的全局(在整个应用程序范围内有效)声明或模块级声明。该应用程序内的其他模块可以访问该标准模块中的过程和声明。
③类模块(文件扩展名.cls)
标准模块只包含代码,而类模块即包含代码又包含数据,可视为没有物理表示的控件。在类模块中建立的对象可以包含自定义的属性和方法。其实,窗体也是这样一种类模块,它可用于放置控件,显示窗体窗口。
④其他模块
VB6.0的专业版和企业版中还包含ActiveX文档(扩展名为.dob)、ActiveX设计器和用户控件(扩展名为.ctl)等。从编程角度来讲,这些模块与窗体模块类似,只是它们具有不同的文件扩展名。
在VB中,构成应用程序的所有不同的文件都包含在一个工程文件中。一个工程的结构通过工程资源管理器窗口来显示,该窗口中包含了此工程的当前文件列表。由上述可以知道,一个工程主要包括以下这些文件:
● 包含所有部件的工程文件(.vbp);
● 窗体文件(.frm);
● 标准模块文件(.bas),该文件是可选的;
● 类模块文件(.cls),该文件是可选的;
● 其他文件,如ActiveX文档(.dob)、ActiveX控件(.ocx)、资源文件(.res)等,这些文件是可选的。
下面以创建一个VB应用程序为例,详细讲解有关VB程序设计的基本方法和步骤。
【例1-1】编写一个Windows程序,运行时在屏幕上显示一个窗口,窗口中有一个文本框,一个命令按钮和两个单选钮。当用户单击命令按钮时,文本框中显示“Hello,您好!”;当用户在两个单选钮上单击时,文本框中的文本分别以常规字体和斜体字体显示。图1-21是程序的运行结果。

图1-21 程序的运行结果
1.创建一个新的工程
在VB集成开发环境的“文件”菜单中选择“新建工程”,创建一个新的工程。通常在VB启动时,系统会自动创建一个新的工程,因此该步会直接跳过。
2.创建用户界面
创建用户界面对应用程序的可用性有很大的影响。不管程序代码多么高效,若没有一个友好的用户界面,程序都不能算是成功的。
本例中的界面设计就是往窗体中加入一个文本框、一个命令按钮和两个单选钮。在加入控件之前,先介绍控件的使用方法。
(1)控件的加入
在窗体中加入控件,一般有两种方法:
①在工具箱中单击所要的控件,然后将鼠标移动到窗体中,此时鼠标指针变为十字,在需要加入控件的位置上按住鼠标左键向右下方拖动成想要的尺寸,再释放鼠标左键,这时一个控件即被“画”到窗体上。
如果需要一次加入多个相同的控件,则在单击工具箱中的控件图标时可先按住Ctrl键,这样就可以在窗体上连续画出若干个相同的控件。
②双击工具箱中所要的控件,该控件就会以缺省大小自动出现在窗体的中心位置。随后用户可以根据需要将该控件拖到合适的位置上。
(2)控件大小及位置的调整
设计一个图形用户界面时,常常需要调整各控件的大小和彼此之间的相对位置,其方法是:首先用鼠标单击该控件,则在控件四周出现八个蓝色矩形小方框,称为“调整框”或“控点”。此时按住鼠标左键不放,拖动控件至目标位置后,释放鼠标左键即可完成控件的移动;若要调整控件的大小,可将鼠标指针指向某个“控点”,待鼠标指针变成一个双向箭头时,按下鼠标左键不放,拖动鼠标以调整其大小,调整合适后,释放鼠标即可。
如果需要在窗体上同时选取多个控件进行操作,则可先按住Ctrl键不放,然后用鼠标左键逐一单击所需的控件进行选取。也可按住鼠标左键不放,在窗体上“画”出一个矩形,来选取区域中的控件。
需要注意的是,有些控件运行时是隐藏的,如定时器Timer控件、CommonDialog控件等,设置它们的位置和大小是无意义的。
(3)控件的删除
先单击选取该控件,再按Del键即可。如果误删了某些控件,可按Ctrl+Z键恢复。
按以上方法画好的窗体如图1-22所示。

图1-22 加入控件后的窗体
3.设置窗体和控件的属性
设计界面时,系统会自动为每个属性设置一个缺省值。比如,“Form1”、“Command1”是系统为窗体Form1和命令按钮Command1设置的缺省标题(Caption),而“Text1”是系统为文本框Text1设置的缺省文本(Text)。这样的缺省属性值一般不能符合设计要求,需要为它们另设属性值。
在程序的设计阶段,对象的属性设置是通过属性窗口来进行的。属性窗口的操作方法如下:
首先选择设置属性的对象,然后激活属性窗口。激活属性窗口有如下几种方法:
●执行“视图”菜单中的“属性窗口”命令;
●按F4键;
●单击工具栏中的“属性窗口”按钮。
属性不同,设置的方式也不一样,通常有以下三种:
(1)直接键入
有些属性,如Caption、Text等都必须由用户键入。在建立对象时,VB可能已经提供了缺省值,但为提高程序的可读性,最好能赋予它一个确定意义的名称,这可通过在属性窗口中键入新属性值来实现。例如,把命令按钮的Caption属性设置为“显示文本”,可按如下步骤操作:
①激活属性窗口;
②在属性列表中找到Caption,并单击该属性条;
③在Caption右侧一列上输入“显示文本”,如图1-23所示。

图1-23 直接键入新属性
(2)选择输入
有些属性(例如BackColor、ForeColor、BorderStyle、ControlBox等)取值有限,可能只有几种或十几种,对于这类属性,VB提供了一个下拉列表框,用户可在下拉列表种选择所需要的属性值,即“选择输入”。例如,为了设置Form1的BackColor属性,可单打击属性窗口中的BackColor属性项,此时右端会出现箭头。单击箭头弹出调色板窗口,再单击调色板中的色块,即可设置相应的颜色,如图1-24所示。

图1-24 选择输入属性 图1-25 利用对话框设置属性
(3)利用对话框设置属性值
与字体(Font)、图标(Icon)或图形(Picture)等有关的属性设置框的右端会显示三个小点(…),如图1-25所示。单击显示三个点的按钮,屏幕上显示一个对话框,可利用该对话框设置需要的属性。
本例中对各对象的属性设置见表1-1。
从属性窗口中可以看出,窗体和控件均带有许多不同的属性,而本例只用到其中的几种,其他属性的值都是取系统提供的缺省值。也就是说,虽然VB中的每个对象可以用许多不同的属性来描述其特征,但实际设置时不可能也没有必要设置对象的所有属性,大部分属性只需取系统提供的缺省值即可。
表1-1 窗体与控件的属性设置
|
对 象 名 |
属 性 名 |
属 性 设 置 值 |
|
Form(窗体) |
Name Caption |
frmHello 我的窗体 |
|
CommandButton (命令按钮) |
Name Caption |
cmdDisplay 显示文本 |
|
TextBox(文本框) |
Name Text Font |
txtInfo 置空 黑体,粗体,四号 |
|
Option1(第一个单选钮) Option2(第二个单选钮) |
Name Caption Value |
optRegular 常规 True |
|
Name Caption Value |
optItalic 斜体 False |
在设置窗体和命令按钮的属性时,都涉及到了Name和Caption属性的设置。对初学者来说,这两种属性特别容易混淆。事实上,对象的Caption属性用于设置对象上所显示标题文本;而Name属性设置的名字是用于在程序代码中识别该对象,这一点读者各在下一小节的程序代码的编写中去体会。
4.编写对象的事件过程代码
用户界面绘制好后,接下来就必须为需要响应用户操作的对象编写事件过程。
事件过程中的代码要通过代码窗口进行输入和编辑。因此,编写程序代码之前首先要进入代码窗口。双击窗体或控件可进入如图1-26所示的代码窗口,这时对象框中显示双击的对象名。从对象框中选择所需对象,如“cmdDisplay”,再从事件框中选择相应的事件名,如“Click”,此时,在代码窗口的正文部分显示出事件过程的框架,如图1-26所示,它由过程声明和结束语句组成,事件过程代码就在两者之间输入。
在本应用程序中,要求对用户操作作出具体响应的只有命令按钮和单选钮,因此,只需针对这三个控件对象的单击事件编写各自的事件过程代码即可。