《Visual Basic程序设计基础教程》习题解答 第1章 Visual Basic 6.0基本知识 1. Visual Basic可视化环境中的基本成分有哪些? Visual Basic 6.0集成开发环境由各种可视化操作成分组成,除了最常见的菜单、工具栏以外,它还包括:工具箱、窗体设计器、属性窗口、工程管理器、代码编辑器,以及对象浏览器、窗体布局窗口、编程环境设置窗口。 2. 试列举文件菜单的菜单项,并说明其作用。 参见教材。 3. 试列举工程菜单的菜单项,并说明其作用。 参见教材。 4. 工具栏和菜单有什么关系?跟菜单比较,工具栏能够带来哪些便利。 工具栏的作用与菜单一样,但工具栏是通过其上面的图标按钮执行菜单命令,将一些常用的菜单命令通过工具栏来提供,由此可以加快操作速度。 5. 工程资源管理器有什么用途? Visual Basic通过工程资源管理器实现了对工程中诸多文件的可视化集中管理,并通过能够对工程文件进行有效更新。 6. 试说明窗体设计器的用途? 窗体设计器是用来以可视方式编辑用户界面的,通过菜单命令“视图\对象窗口”,或在“工程资源管理器”上选择“对象窗口”图标,可以显示窗体设计器。 7. 试说明中断调试的用途? 中断就是暂时终止程序的执行,把程序切换到中断模式,从而便于查找错误点。通过菜单命令“运行\中断”,或单击“调试”工具栏中的“中断”按钮,或按Ctrl+Break键,就可以进入到中断模式。 8. 试说明单步调试程序的方法与用途。 单步调试方法可以使程序逐语句或逐过程地执行。 逐语句就是一次执行一条语句。连续地按F8键,或选择菜单命令“调试 \ 逐语句”,或单击“调试”工具栏中的“逐语句”按钮,可以逐语句地运行程序。 逐过程与逐语句相似,只有在当前被执行的语句中含有对其它过程的调用时,两者才会有差异。逐过程是将过程视为一个基本单位来执行的。可以按Shift+F8,或选择菜单命令“调试 \ 逐过程”,或单击“调试”工具栏中的“逐过程”按钮,而逐过程地运行程序。 9. 试建立一个含有窗体的程序,窗体上摆放有两个文本框,一个命令按钮,一个标签,用于实现两个待输入数的乘积运算。其中,“文本框”用于输入待计算的数,“命令按钮”用于实现计算,“标签”用于显示计算结果。 程序如下: Option Explicit Private Sub Command1_Click() Label1 = Val(Text1) * Val(Text2) End Sub 第2章 数据类型及运算 1. 试说明常数、变量的区别及其用途。 常量是用标识符表示的不变的数值或字符串,使用 Const 语句来声明。一旦已经定义了常量标识符,就可将它们放置在代码中代替某个值。在程序运行过程中,常量是不能改变的,因此不能对常量赋新值。当常量标识符为有意义的名称时,可以使源代码更加便于阅读。设置常量标识符的好处还体现在当需要对常量值作修改时,只需要在常量标识符定义处做改动,这有利于提高源程序的可维护性。 在 Visual Basic应用程序运行期间,变量被用来存储可能变化的数据。可以把变量看作内存中存放未知值的所在处。变量在使用之前往往需要先做声明,声明变量就是事先将变量通知程序,由此使变量的使用合法。声明变量时需要指明变量名和变量类型。其中,变量类型被用来确定变量能够存储的数据的种类。 2. 试说明过程级变量、模块级变量的区别。在编写程序时为什么提倡使用过程级变量? 过程级变量只有在声明它们的过程中才能被识别,也叫做局部变量。由于无法在一个过程中访问另一个过程中的局部变量,因此在不同过程中就可以使用相同的变量名,而不必担心有什么冲突。可以在过程内使用 Dim 或 Static 关键字来声明过程级变量。 模块级变量比过程级变量的作用范围要大。模块级变量对该模块的所有过程都可用,但其它模块不能使用。可以在模块顶部的声明段用 Private或Dim关键字声明模块级变量。 过程级变量只对自己所在过程起作用,影响范围小,便于程序的调试和错误修改,可以使程序更加健壮。因此,程序设计时,提倡使用过程级变量。 3. 试说明过程级变量中静态变量的定义方式,什么情况下需要用到静态变量? 静态变量使用 Static 声明。 在过程内定义的静态变量尽管在过程外不能访问,但在整个应用程序运行期它却一直存在,即使过程结束,变量的值也仍然保留在内存中。当需要保存中间计算结果,而这个计算又与其它过程无关时,可以使用过程级静态变量。 4. 如何定义公共变量?什么情况下需要用到公共变量? 只能在模块的声明段中用Public 关键字声明公共变量。 经过Public 关键字声明的公共变量可用于应用程序的所有模块、过程。当一个变量需要被多个模块使用时,需要用到公共变量。 5. 数值型数据有哪几种?为什么可以把Byte类型的数据当做数值型数据使用? Visual Basic 支持的数值型数据有:Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)、Currency(货币型)。 Byte是字节型数据,但其数据范围是0到255,因此,它也就可以当作数值型数据使用。 6. 整型数据、浮点型数据都是数值型数据,比较起浮点数,整型数有什么优势? 整型数变量只能存储只能整数,尽管存数范围比浮点数小,但整型数的运算速度比浮点数快,而且所占据的内存也少。 7. Variant数据类型有什么特点?为什么要限制使用? Variant 型是声明变量时的缺省类型,能够存储所有类型的数据。如果把数据赋予 Variant 变量,则不必在这些数据的类型间进行转换; Visual Basic 会自动完成任何必要的转换。Variant型变量使用方便,但是比较起专用类型的数据更消耗内存资源,为提高程序处理数据的效率,一般采用专用类型的变量而限制Variant 数据类型的使用。 8. 多维数组为什么需要更多的存储空间? 任何数据类型的数组都需要 20 个字节的内存空间,另外数组每增加一个维数就要多增加 4 个字节;所以,多维数组需要更多的存储空间。例如,4 个 2 字节 Integer 数据元所组成的二维数组,数据本身占 8 个字节,而二维数组额外需要 28 个字节,这使得这个二维数组所需总内存空间为 36 个字节。 9. 在使用动态数组时需要用到ReDim语句,试说明该语句的作用。 ReDim语句是执行语句,通过在应用程序运行过程中执行ReDim 语句,而能够给数组动态指定维数和分配实际的元素个数。 10. 试建立一个枚举数据类型将全年的12个月份列举出来。 Public Enum month 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 End Enum 11. 试建立一个自定义数据类型,该数据类型用于存储学生的学号(整型)、姓名(字符串型)、平时成绩(浮点型)、期考成绩(浮点型)等信息。 Private Type StuRecord Number As Integer Name As String PeGrade As Single FiGrade As Single End Type 12. 运算符有哪些类型?其优先级如何? Visual Basic中的运算符类型有:算术运算符、比较运算符、连接运算符、逻辑运算符等。 表达式中运算符的优先顺序是:先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。 所有比较运算符的优先顺序都相同。 算术运算符优先级由高至低是:指数运算 (^)、负数 (–)、乘法和除法 (*、 /)、整数除法 (\)、求模运算 (Mod)、加法和减法 (+、 –)。 逻辑运算符优先级由高至低是:Not、And、Or、Xor、Eqv、Imp 当运算符优先级相同时,按照从左到右出现的顺序进行。可以用括号改变优先顺序。 字符串连接运算符“&”在所有算术运算符之后,而在所有比较运算符之前。 13. 有变量X=24.6,Y=3,Z=“97”。试给出以下表达式的结果: (a)X+Y;(b)X / Y;(c)X \ Y;(d)X Mod Y;(e)Y+Z; (f)Y&Z;(g)X>Y;(h)Not ( (X<Y And Y<Z=Or (X>Y))。 (a)27.6;(b)8.2; (c)8; (d)1; (e)100; (f)”397”;(g)True; (h)False 第3章 程序结构 1. If...Then...Else分支语句和Select Case分支语句有什么不同?在进行多分支处理时,什么情况下只能使用If...Then...Else,而不能使用Select Case。 Select Case用于实现多重选择,其作用与 If...Then...Else 语句类似,但主要用于只有一个条件,并且条件值为离散值的分支选择。另外,If...Then...Else... 为每个 ElseIf 语句计算不同的表达式,而Select Case只在开始处计算测试条件的值。因此,只有在 If 语句的每一个 ElseIf 语句计算相同表达式时,才能用Select Case 结构替换 If...Then...Else... 结构。 2. 假如要在进入循环体之前检测循环条件,应该选择什么类型的循环结构? 应该选择循环检测条件在前的循环结构,例如: Do While 条件表达式 语句块 Loop 或 Do Until 条件表达式 语句块 Loop 3. 试对子过程、函数过程、事件过程作出比较? (1)子过程,通过Sub 语句声明,不能返回值。 (2)函数过程,通过Function语句声明,能够返回值。由于函数过程可以返回值,因此函数过程也就有了数据类型。 (3)事件过程,通过被引用的类中所包含的事件声明所提供。 4. 在向过程传递参数时有按值传递和按地址传递两种方式,它们有什么不同?Visual Basic 的缺省方式按地址传递,若需要按值传递,则其参数定义格式是什么? 按值传递参数时,所传递的是实际参数的值,实参、形参分别有不同的内存地址。如果在被调用过程中改变了这个参数值,则所作变动只会到形参,不会影响实参。通过 ByVal 关键字可以声明按值传递的参数。 参数按地址传递时,所传递的是实际参数的地址,这时的实参与形参具有相同的内存地址,所调用过程对形式参数所做的改变,也将随之反映到实际参数上来。通过 ByRef 关键字可以声明按地址传递的参数。 5. 建立一个窗体程序,窗体上摆放有命令按钮。在命令按钮的Click事件中建立For循环或Do While循环,加上If...Then...的嵌套程序,程序中使用Print语句,将0到100以内的奇数输出到窗体上? Private Sub Command1_Click() Dim i As Integer For i = 0 To 100 If i Mod 2 = 1 Then Print i Next End Sub 6. 为实现对数学表达式:2!+4!+6!+8!+10!+12!的计算,需要建立一个函数过程。试建立该函数过程。 Public Function jc() As Long Dim i As Integer, j As Integer Dim t1 As Long, t2 As Long t2 = 0 For i = 2 To 12 Step 2 t1 = 1 For j = 1 To i t1 = t1 * j Next j t2 = t1 + t2 Next i jc = t2 End Function 7. 建立一个窗体程序用于计算数学函数:Y=a*X^3+b*X^2+c*X+d 的值,并将计算的函数值显示。为此,窗体上摆放有5个文本框,用来输入系数及自变量:a、b、c、d、X;一个标签,用来显示函数值;一个命令按钮,用来启动计算。建立一个函数过程来完成具体计算,它将被命令按钮的Click事件中的语句调用。 程序如下: Option Explicit Private Function hS(a As Single, b As Single, _ c As Single, d As Single, x As Single) As Single Dim y As Single y = a * x ^ 3 + b * x ^ 2 + c * x + d hS = y End Function Private Sub Command1_Click() lblY = hS(Val(txtA), Val(txtB), Val(txtC), Val(txtD), Val(txtX)) End Sub 8. 试给出下列表达式的结果: (a) Sqr(16) * (Abs(-9) - Int(-12.6)+Len(Trim(" Visual Basic6.0中文版 "))) (b) Left("今天是:年,月,日", 4) & Month(Date) & "-" & Day(Date) (a)160 (b)今天是:7-11 9. 试说明On Error GoTo ErrBar与On Error Resume Next语句之间的区别。 10. 试说明Resume和Resume Next语句之间的区别。 11. 试用对象的层次关系说明窗体、窗体上的控件、控件属性之间的关系。 第4章 用户界面设计 1. Visual Basic中的窗体和控件都是可视化对象元素,它们之间的区别是什么? 窗体是容器,其用来装载控件。在创建应用程序时,窗体可以独立工作,而控件不能独立工作,它需要依赖于一定的容器(例如,窗体)才能工作。 2. 在使用窗体的时候,往往需要对它的属性进行设置,试列举其常用属性。 参见教材。 3. 试通过文本框控件说明对象的方法、事件之间的区别。 当要使文本框获得光标焦点时,可以使用它的SetFocus方法;而当文本框得到光标焦点时,将会触发它的GotFocus事件。 4. Click事件是命令按钮最常用的事件,其作用是什么? 当在命令按钮上单击鼠标左键,或敲Enter按键时,将会触发它的Click事件。 5. 试比较命令按钮、复选框、单选钮在应用上的异同? 命令按钮、复选框和单选钮都有Click事件,都可以用于任务启动。但复选框、单选钮被鼠标左键,或Enter按键敲击后,还能够显示选择状态。 6. 试比较文本框、列表框、组合框在应用上的异同? TextBox控件一般被用来输入、输出数据,编辑文本。通过其MultiLine、ScrollBars属性可以设置文本框是否能进行多行编辑,或是否有垂直或水平滚动条。 ListBox控件用于显示项目列表,用户可以从列表框中的一系列选项中选择一个或多个选项。当列表框中的选项数超过其可显示的区域,列表框会自动增加滚动条。 ComboBox控件将TextBox控件和ListBox控件的功能结合在了一起。当在ComboBox控件中选择列表项目时,即可以通过它的文本框输入,也可以从它所带的列表中选择。 7. ActiveX 控件和Visual Basic的内部控件有什么不同? ActiveX 控件是外部控件,其存在形式不同于和Visual Basic融合在一起的内部控件。它们是以扩展名为 .ocx 的文件形式存在于Visual Basic系统之外,只在需要时才将其添加到工具箱中。 8. 建立一个含有窗体的标准程序,窗体上有两个列表框:List1、List2,一个命令按钮:Command1。要求建立这样的程序,使得当Command1被单击时,List1中被选中的项目移入到List2中。 Private Sub Command1_Click() Dim i As Long, K As Long i = 0 K = List1.ListCount - 1 If K < 0 Then Exit Sub Do Until i > K If List1.Selected(i) Then List2.AddItem List1.List(i) List1.RemoveItem i i = i - 1 K = K - 1 End If i = i + 1 Loop End Sub 9. 命令按钮的Click事件是用户触发事件,而窗体的Load事件是系统环境事件。这两类事件的不同之处是什么? 用户触发事件的触发器由用户控制,例如:Click、KeyPress、MouseDown等事件。 系统环境事件的触发器由Visual Basic系统或程序所控制,如窗体的Load、Unload、QueryUnload事件,时钟控件的Timer事件。 10. 试通过窗体的启动过程和卸载过程说明事件的触发顺序。 系统环境事件的触发是由系统自动安排的,它们往往有一个相对固定的执行顺序。当窗体启动的时候,将依次触发:Initialize、Load、Activate、Resize事件。而当窗体卸载的时候,则会先发生QueryUnload,然后再发生Unload事件。 11. 编一个窗体程序,运行时将键盘上输入的所有字母转换成小写后显示在窗体中。 Private Sub Form_KeyPress(KeyAscii As Integer) Print LCase(Chr(KeyAscii)) End Sub 12. 编写一个窗体程序,窗体中有一个文本框,要求在文本框中只能输入整数。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub 13. 编写一个窗体程序,窗体中有一个文本框,要求文本框输入的字符串的长度必须是6,否则焦点不能离开文本框。 Private Sub Text1_LostFocus() If Len(Text1) <> 6 Then Text1.SetFocus End If End Sub 14. 编写一个倒计数窗体程序。其功能是,用户在文本框中输入一个自然数,然后单击“倒计数”按钮,文本框中的数字就每隔0.5秒逐次减1,当减到0时,倒计数停止。 Option Explicit Private Sub Form_Load() Text1 = "" Timer1.Enabled = False Timer1.Interval = 500 End Sub Private Sub Command1_Click() Timer1.Enabled = True End Sub Private Sub Timer1_Timer() If Val(Text1.Text) = 0 Then Text1.Text = "" Timer1.Enabled = False Text1.SetFocus Else Text1.Text = Str(Val(Text1.Text) - 1) End If End Sub 15. 菜单有哪几种类型?应用程序中菜单的用途是什么? 主要有标准下拉菜单和弹出式菜单这两种类型。菜单能够有效改善用户界面。菜单实质上是命令的组合,它把诸多面向用户的命令按照类别合理组织,并很直观地展现出来,由此使用户可以很方便地操作命令。 16. 工具栏的作用是什么?如何使得工具栏上的按钮和菜单命令在操作上保持一致? 工具栏是用来配合菜单的。工具栏具有菜单所缺少的图形化的外观,而且提供了比菜单更快捷的访问方式。工具栏上的按钮可以通过调用菜单控件的事件来获得对菜单命令的配合。 17. Visual Basic提供了哪些对话框函数? Visual Basic提供的对话框函数有: (1)InputBox函数,用于等待用户在文本框中输入,并返回包含文本框内容的字符串。 (2)MsgBox函数,用于显示消息,并等待用户单击按钮,然后返回一个整形数值告诉用户单击哪一个按钮。 18. 如何建立自定义对话框? 参见教材。 19. 建立一个含有窗体的标准程序,窗体上有一个文本框:Text1,一个命令按钮:Command1,一个公共对话框控件:CommonDialog1。要求建立这样的程序,使得当Command1被单击时,能打开一个“打开文件”对话框,其仅能选择扩展名为TXT的文件,并将所选择的文件名在Text1上显示。 Private Sub Command1_Click() On Error GoTo ErrBar CommonDialog1.CancelError = True CommonDialog1.Filter = "*.TXT|*.TXT" CommonDialog1.ShowOpen Text1 = CommonDialog1.FileName ErrBar: End Sub 20. 试说明MDI窗体的用途,并说明如何将MDI 窗体设置为启动窗体。 当用户需要同时进行两项以上的相关事务操作时,如:既希望看到查询结果,又希望看到汇总情况时,能够包含多文档的MDI窗体就给操作带来了便利。 通过菜单命令“工程\工程属性”打开“工程属性”对话框,从“工程属性”对话框上的“启动对象”列表框中,可以选取所需要启动模块,由此可以将MDI 窗体设置为启动窗体。 21. 如何将普通的独立窗体设置为MDI子窗体? 设置标准窗体的MDIChild 属性为 True,则该窗体就成为了一个 MDI 子窗体。 22. 试对MDI 窗体的 ActiveForm 属性和ActiveControl 属性给出描述。 通过MDI 窗体的 ActiveForm 属性,可以获得具有焦点的子窗体,或者是最后被激活的子窗体,并由此操作这些子窗体。而通过MDI 窗体的ActiveControl 属性,可以获得当前活动子窗体上具有焦点的控件,并由此操作这些控件。 第5章 文件的输入、输出与打印 1. 试对顺序文件、随机文件和二进制文件进行比较? (1)顺序文件是存储在连续块中的文本文件,数据被存储为 ANSI 字符。 (2)随机文件是有固定长度记录结构的文件,由具有相同数据类型的记录组成的,其每个记录包含一个或多个字段。数据被作为二进制信息存储。 (3)二进制文件是以任意结构存储的文件,数据被作为二进制信息存储,文件中的字节可以代表任何东西。 第6章 数据库应用 1. 试对关系型数据库中的数据库、数据表、字段、记录给以说明。 数据库是与特定主题相联系信息的集合。关系型数据库建立在关系代数基础之上,其基本成分是具有二维关系的数据表。二维关系表是关系型数据库的基本数据结构,其结构由字段确定,其数据以记录为单位存储。 2. 需要对“收支账册”数据表进行查阅,查询条件是:项目为“工资”,日期范围是2004-1-15到2004-2-15;需要返回的字段是:姓名、金额。请写出该查询操作的SQL语句。 SELECT姓名, 金额 FROM收支账册 WHERE (项目=”工资”) and (日期>#2004-1-15#) AND (日期<#2004-2-15#); 3. 需要删除“收支账册”数据表中字段“项目”是“存款利息”的记录。请写出该删除操作的SQL语句。 DELETE * FROM收支账册 WHERE (项目="存款利息"); 4. 比较Data控件和ADO Data控件? Data控件是Visual Basic内部数据连接控件,它使用 Microsoft 的 Jet 数据库引擎来实现数据访问,可以访问很多标准格式的数据库,如:Access、dbases、FoxPro,等等。Data控件也能够访问 Excel、Lotus 1-2-3、以及标准的 ASCII 文本文件,尽管它们不是数据库,但Data控件仍把它们当作数据库来处理。 ADO Data 是ActiveX外部控件,其用途以及外形都和Data 控件相似,但它是通过 Microsoft ActiveX 数据对象(ADO) 来建立对数据源连接的,凡是符合 OLEDB 规范的数据源都能连接。因此,ADO Data 控件比较起Data 控件具有更宽广的适应性,可以直接使用ADO Data 控件进行对服务器型数据库的连接。 5. Data控件上的记录集对象有哪些方法?试使用其中的方法进行添加记录的操作。 有:AddNew、Edit、Delete、Update、Close、Move、MoveFirst、MoveLast、MoveNext、MovePrevious等方法。 6. 描述将JTCW.mdb中的“收支项目”数据表连接到ADO Data控件上的操作步骤? (1)设置ADO Data控件的ConnectionString属性到JTCW.mdb数据库。 (2)设置ADO Data控件的RecordSource属性为“收支项目”。 7. 描述将文本框控件绑定到ADO Data控件上的操作步骤? (1)设置文本框控件的DataSource属性到需要绑定到的ADO Data控件。 (2)设置文本框控件的DataField到所绑定的ADO Data控件连接的数据表的某个字段。 8. 试描述ADO对象模型的组成及其作用? ADO 对象模型包含:Connection、Error、Command、Parameter、Recordset和Field等对象。其中,Connection对象代表与数据源进行的对话连接,Error对象用于检查数据源返回的错误,Command对象被用于定义将要对数据源执行的命令,Parameter 对象用于支持参数化查询,Recordset 对象表示来自基本数据表或命令执行结果的记录集,Field 对象则对应于 Recordset 中的一列。 第7章 图形、多媒体及网络的编程应用 1. 在Visual Basic中如何设置坐标模式? 坐标系统是一个二维网格,可用来定义屏幕上、窗体中或其它容器中(如:图片框或 Printer 对象)的位置。大多数情况下,可能会采用缺省的刻度作为坐标系统。这时坐标刻度单位是缇,基点位置(0,0)在容器对象的左上角。当需要采用系统提供的其它标准刻度单位时,可通过设置 ScaleMode 属性来获得。 2. 建立一个窗体程序。窗体上有图片框、命令按钮和可选按钮,可以通过可选按钮、命令按钮选择Pset、Point、Line、Circle、Cls等绘图方法,并通过鼠标在图片框上画图。 Option Explicit Dim PaintNow As Boolean Dim x1 As Single, y1 As Single Private Sub comdCls_Click() Picture1.Cls End Sub Private Sub Form_Load() Picture1.DrawWidth = 3 '设置点的宽度大小 End Sub Private Sub Picture1_MouseDown(Button As Integer, _ Shift As Integer, x As Single, y As Single) If Button = vbLeftButton Then PaintNow = True '启动绘图 x1 = x y1 = y End If End Sub Private Sub Picture1_MouseUp(Button As Integer, _ Shift As Integer, x As Single, y As Single) Dim i As Integer If optLine.Value Then Picture1.Line (x1, y1)-(x, y), RGB(0, 255, 255) '画直线 ElseIf optCircle.Value Then Dim R As Single R = Sqr((x - x1) ^ 2 + (y - y1) ^ 2) Picture1.Circle (x1, y1), R, RGB(255, 0, 255) '画圆 End If PaintNow = False '禁止绘图 End Sub Private Sub Picture1_MouseMove(Button As Integer, _ Shift As Integer, x As Single, y As Single) If Not PaintNow Then Exit Sub If optPset.Value Then Picture1.PSet (x, y), RGB(255, 255, 0) '画点 End If End Sub 3. 建立一个窗体程序。窗体设置有图片框命令,按钮,可以通过命令按钮在图片框中绘画正弦函数曲线图。 参见实例程序。 4. 使用Multimedia控件制作一个用于播放AVI动画文件的播放器。 参见实例程序。 5. 试描述如何使用Internet Transfer控件进行文件传输。 Internet Transfer是Internet传输控件,其能够使用HTTP与FTP协议进行数据传输。并可以通过OpenURL或Execute这两种方法,连接到有关站点进行文件检索,或文件下载。 6. 试对TCP、UDP这两种协议进行比较。 TCP协议控件是基于连接的协议,可以将它同电话系统相比,在开始数据传输之前,用户必须先建立连接。 UDP协议是一种无连接协议,两台计算机之间的传输类似于传递邮件,其单次传输的最大数据量跟具体网络有关。 7. 在使用WinSock控件并基于UDP协议建立通信程序时,需要对控件进行哪些属性设置。 参见实例程序。 第8章 制作ActiveX控件 1. 试描述制作ActiveX控件的步骤? (1) 确定控件将要提供的功能。 (2) 设计控件的外观。 (3) 设计控件的属性、方法接口。 (4) 创建由控件工程和测试工程组成的工程组。 (5) 添加子控件或图形绘画代码到控件的UserControl 对象中,以实现控件的外观。 (6) 添加代码到控件的UserControl对象中,以实现控件的接口和功能。 (7) 通过测试工程测试所建控件。 (8) 编译控件部件(ocx 文件)并通过各种可能的应用程序对它进行测试。