MAPIMessages
消息应用程序接口 (MAPI) 控件允许创建邮件功能的 Visual Basic MAPI 应用程序。有 2 个 MAPI 控件:
MAPISession
MAPIMessages
MAPISession 控件启动并建立一 MAPI 会话。它也用于结束 MAPI 会话。MAPIMessages 控件允许用户执行各种消息系统功能。
MAPI 控件在运行时是不可见的。而且,对该控件不存在事件。为使用它们,必须指定适当的方法。
在用 MAPIMessages 控件建立一个消息会话后,MAPISession 控件可以执行各种消息系统功能。
为使这些控件正常工作,必须提供 MAPI 服务。MAPI 服务是符合电子邮件系统规范的。
注意 如果试图运行一个使用 MAPI 控件的程序,要确保已正确安装了 32 位 MAPI DDL,否则将不能执行象 SignOn 这样简单的 MAPI
功能。例如在 Windows 95 上,在操作系统设置期间必须安装 MAIL、或者从控制面板上单独地安装 MAIL,以正确使用 visual basic 的
MAPI 功能或 MAPI 自定义控件。
语法:
MAPIMessages
说明:
使用 MAPIMessages 控件可以:
1:访问当前收件箱中的消息。
2:构成一条新消息。
3:添加及删除消息收件人和附件。
4:发送消息(无论有无支持的用户接口)。
5:保存、复制、和删除消息。
6:显示“通讯簿”对话框。
7:显示“详细资料”对话框。
8:访问附件,包括对件连接和嵌入 (OLE) 附件。
9:在寻址过程中,分析一个收件人的名字。
10:对消息执行应答,全应答和转发操作。
MAPIMessages 控件的大部分属性可分到 4 个功能区:通讯簿、文件附件、消息和收件人属性。文件附件、消息和收件人属性分别有
AttachmentIndex,MsgIndex 和 RecipIndex 属性控制。
消息缓冲区
当使用 MAPIMessages 控件时,需跟踪 2 个缓冲区:构成缓冲区和读缓冲区。读缓冲区由取自用户的收件箱的一个可索引的消息集合组成。MsgIndex
属性用于访问该集合单个消息,第一个消息的 MsgIndex 属性为 0,以后的消息依次加 1,直至集合的尾部。
消息集使用 Fetch 方法建立。该消息集包括 FetchMsgType 类型的所有消息,并且按FetchSorted
属性的规定进行分类。先前读的消息可以包括在有 FetchUnreadOnly
属性的消息集之内,或留在集合外。用户不能修改读缓冲区中的消息,但可以将消息拷贝到构成缓冲区中进行修改。
在构成缓冲区中可以创建和编辑消息。当 MsgIndex 属性值为 -1
时,构成缓冲区是活动缓冲区。许多对消息的操作只有在构成缓冲区中才是有效的,例如发送消息,用对话框发送消息,保存消息,或删除收件人和附件。
消息应用程序接口 (MAPI) 控件可以创建具有邮件功能的 Visual Basic MAPI 应用程序。有 2 个 MAPI 控件:
MAPISession
MAPIMessages
MAPISession
MAPISession 控件登录并且建立一个 MAPI 会话。它也用于结束一个 MAPI 会话并退出。MAPIMessages
控件使用户可以可以执行多种消息系统功能。
语法:MAPISession
说明:
登录成功后,SessionID 属性包含访问 MAPI 会话的句柄。当使用 MAPIMessages 控件时,会话句柄必须传给 MAPIMessages
控件,否则将引发错误。
MAPISession 控件在运行时是不可见的。而且,该控件不产生事件。为使用它,必须指定适当的属性和方法。
为使这些控件正常工作。必须有 MAPI 服务。MAPI 提供的 MAPI 服务是符合电子邮件系统规范的。
注意 如果试图运行一个使用 MAPI 控件的程序,必须先保证已正确安装了 32 位 MAPI DDLs,否则将不能完成象SignOn这样简单的 MAPI
功能。例如,为了正确使用 MAPI 功能或者来自 visual basic 的 MAPI 自定义控件,在 Windows 95 上必须在操作系统的安装过程中安装
Exchange,或者从控制面板上单独地安装 MAIL。
Masked Edit
Masked Edit 控件提供受限制的数据输入及格式化的数据输出。它显示提示信息,说明输入的数据或显示的数据类型。此控件看起来很象工具栏中的一个图标。
其文件名:MSMASK32.OCX
类名:MaskEdBox
说明:
Masked Edit 控件通常表现为一个标准文本框控件,增强了选择掩码输入和格式化输出的功能。如果没有使用输入掩码,那么,除了它的动态数据交换 (DDE)
功能,Masked Edit 控件的状态更接近于标准文本框。
如果用 Mask 属性定义输入掩码,则 Masked Edit 控件中的每一个字符位置,或者是指定类型的占位符,或者是原义字符。原义字符或 literals
可以指出所用数据的类型。例如,电话号码的区号两边的圆括号就是原义字符:(206)。
如果输入的字符与输入掩码冲突,控件将产生 ValidationError 事件。输入掩码不允许在控件中输入无效字符。
Masked Edit 控件具有三个被绑定的属性:DataChanged、DataField 和 DataSource。这意味着可将它链接到数据控件上,并可显示记录集中当前记录的字段值。Masked
Edit 控件也可向记录集中写值。
如果可能的话,在读取 DataField 属性引用的字段值时,会将此值转换成 Text 属性的字符串。如果记录集是可更新的,那么字符串将转换成该字段的数据类型。
为了在定义掩码后清除 Text 属性,首先要给一个空字符串设置 Mask 属性,然后再给空字符串设置 Text 属性。
MaskedEdit1.Mask = ""
MaskedEdit1.Text = ""
在定义输入掩码时,Masked Edit 控件的状态就不同于标准文本框了。当输入数据或移动插入点时,插入点会自动跳过原义字符。
当插入或删除字符时,插入点右侧的所有非原义字符都必须跟着移位。如果这些字符的移位导致有效性错误,则应防止插入或删除,同时会触发 ValidationError
事件。
假设 Mask 属性被定义为 "?###",而 Text 属性的当前值是 "A12"。如果想把字母“下”插入到字母 "A"的左侧,"A"
就会右移。因为要求输入掩码中的第二个值为数字,所以 "A" 使控件生成 ValidationError 事件。
Masked Edit 控件也供 Text 属性的值在运行时有效。如果 Text 属性的设置使属性自身与输入掩码冲突,则控件生成运行时错误。
可以象对标准文本框控件那样,用与那里相同的方法选择文本。当删除选定文本时,控件将移动选定文本右侧的其余字符。但是,在移位过程中可能导致有效性错误的任何剩余字符都被删除了,所以不会产生
ValidationError 事件。
通常,当把 Masked Edit 控件中的选定文本复制到剪贴板时,包括原义字符在内的全部选定文本都被送到剪贴板上。用 ClipMode
属性,可以只将用户输入的数据送到剪贴板上,而不会复制输入掩码中的原义字符。
Menu:
Menu 控件显示应用程序的自定义菜单。命令、子菜单和分隔符条都可包括在菜单之中。每一个创建的菜单至多有四级子菜单。
语法:Menu
说明:
为了创建 Menu 控件,要使用“菜单编辑器”。在“标题框”中输入 Menu 控件的名称。为了创建分隔符栏,要在“标题框”中输入单连字符
(-)。为了在菜单项的左侧显示复选标记,则要选择“复选框”。
可以使用“菜单编辑器”设置某些 Menu 控件属性,所有 Menu 控件属性都要显示在“属性”窗口中。为了显示 Menu
控件的属性,要在“属性”窗口上部的“对象”列表中选择菜单名称。
在创建 MDI 应用程序时,当子窗体为活动窗体的时候,MDI 子窗体上的菜单条将替换 MDIForm 对象上的菜单条。
Internet Transfer
Internet Transfer 控件支持超文本传输协议 (HTTP) 和文件传输协议 (FTP),它们是 Internet 网上使用最广泛的两种协议。
使用 HTTP 协议,可以连接全球信息网(World Wide Web)服务器,以检索 HTML 文档。使用 FTP 协议可以在 FTP
服务器上登录,以下载和加载文件。UserName 和 Password 属性可让您在要求验证身份的私有的服务器上进行登录。另外,也可以连接公用的 FTP
服务器,并下载文件。Execute 方法支持普通的 FTP 命令,如 CD 和 GET。
MonthView
MonthView 控件可以用来创建一个能够让用户通过日历风格的界面查看和设置日期信息的应用程序。
语法:MonthView
说明:
MonthView 控件的 Value 属性返回当前被选定的日期。
可以允许最终用户通过将 MultiSelect 属性设置为 True,并使用 MaxSelProperty
指定可选择的天数来选择一个连续的日期范围。SelStart 和 SelEnd 属性返回所选择的日期范围的第一个日期和最后一个日期。
可以用许多方法自定义一个 MonthView 控件的外观。可以使用各种颜色属性,例如
MonthBackColor、TitleBackColor、TitleForeColor 和 TrailingForeColor 为控件创建一个唯一的配色方案。
通过设置 MonthRows 和 MonthColumns 属性,可以在一个 MonthView 控件中一次显示多个月份(多至 12)。MonthRows 和
MonthColumns 属性的总数必须小于或等于 12。
注意 MonthView 控件是 ActiveX 控件组的一部分,位于 Mscomct2.ocx 文件中。如果要在应用程序中使用 MonthView
控件,必须将 Mscomct2.ocx 文件添加到工程中。在发布该应用程序时,需要在用户的 Microsoft Windows 的 System 或
System32 目录中安装这个 Mscomct2.ocx 文件。
MSChart
以图形方式显示数据的图表。
语法:MSChart
说明:
MSChart 控件支持以下特性:
真三维表示。
支持所有主要的图表类型。
数据网格成员支持随机数据,数据数组。
MSChart 控件与数据网格(DataGrid
对象)相关连。这种数据网格是存有已图表化数据的表。数据网格中也包括用于在图表中标识系列和分类的标签。图表应用程序的设计人员通过从表单或数组中插入或输入数据,来给数据网格填充信息。
例:下面的示例显示一个具有 8 行 8 列数据的三维图表,并设置了图例的参数。
Private Sub Command1_Click()
With MSChart1
'显示一个具有 8 行 8 列数据的三维图表。
.ChartType = VtChChartType3dBar
.ColumnCount = 8
.RowCount = 8
For column = 1 To 8
For row = 1 To 8
.Column = column
.Row = row
.Data = row * 10
Next row
Next column
'将图表作为图例的背景。
.ShowLegend = True
.SelectPart VtChPartTypePlot, index1, index2, _
index3, index4
.EditCopy
.SelectPart VtChPartTypeLegend, index1, _
index2, index3, index4
.EditPaste
End With
End Sub
MSComm
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
语法:MSComm
说明:
MSComm 控件提供下列两种处理通讯的方式:
1:事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或
Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm
事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。
2:在程序的每个关键功能之后,可以通过检查 CommEvent
属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在
Windows“控制面板”中改变端口地址和中断地址。
尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性:
属性 |描述
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
例:下面这个简单的例子演示了用调制解调器进行基本的串行通讯:
Private Sub Form_Load ()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 确保
' 调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' 从串行端口读 "OK" 响应。
' 关闭串行端口。
MSComm1.PortOpen = False
End Sub
注意 MSComm 控件可以采用轮询或事件驱动的方法从端口获取数据。这个简单的例子使用了轮询方法。
MSFlexGrid
Microsoft FlexGrid (MSFlexGrid)
控件可以显示网格数据,也可以对其进行操作。它提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。如果将它绑定到一个 Data 控件上,那么
MSFlexGrid 显示的将是只读的数据。
语法:MSFlexGrid
说明:
文本和图片可以同时或者单独放在 MSFlexGrid 的任何一个单元格中。Row 和 Col 属性指定了当前的 MSFlexGrid
单元格。程序员可以在代码中改变当前单元格,用户可以在运行时使用鼠标或者箭头键改变它。Text 属性提供了当前单元格内容的参考信息。
如果单元格中的文本过长,无法全部显示在单元格的一行中,而且 WordWrap 属性被设置为
True,那么文本将回绕到同一单元格的下一行。如果需要显示被回绕的文本,需要增加单元的列宽(ColWidth 属性)或行高(RowHeight 属性)。
使用 Col 和 Row 属性可以分别确定 MSFlexGrid 中列与行的个数。
注意 在应用程序中使用 MSFlexGrid 之前,首先必须将 MSFlxGrd.ocx 文件添加到工程中。如果希望自动地将文件包含在过程之中,请将它放在
Autoload 文件中。在发布应用程序的时候,应该在用户的 Microsoft Windows System 目录下安装 MSFlxGrd.ocx 文件。
Multimedia MCI
Multimedia MCI 控件管理媒体控制接口 (MCI)
设备上的多媒体文件的记录与回放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD
播放器和视频磁带记录器及播放器等设备发出 MCI 命令。MCI 控件还支持 Windows (*.avi) 视频文件的回放。
在设计时,将 Multimedia MCI 控件加到一个窗体上,它在窗体中的外观象一组按钮。
按钮被分别定义为 Prev、 Next、 Play、 Pause、 Back、 Step、 Stop、 Record 和 Eject。
说明:
在允许用户从 Multimedia MCI 控件选取按钮之前,应用程序必须先将 MCI 设备打开,并在 Multimedia MCI 控件上启用适当的按钮。在
Visual Basic 中,应将 MCI Open 命令放到 Form_Load 事件中。
在使用 Multimedia MCI 控件记录音频信号之前,应打开一个新的文件。这样就可以保证记录声音的数据文件格式与系统记录格式完全兼容。在关闭 MCI
设备之前,还应该发出 MCI Save 命令,把记录的数据保存到文件中去。
Multimedia MCI 控件可以通过多种方法编程:
在运行时,控件可以是可见的或不可见的。
可以增加或完全重新定义控件中按钮的功能。
可以在一个窗体中控制多台设备。
如果想使用 Multimedia MCI 控件中的按钮,要将 Visible 和 Enabled 属性设置为 True。如果不想使用控件中的按钮,而只是想用
Multimedia MCI 控件的多媒体功能,可将 Visible 和 Enabled 属性设置为 False。无论有没有用户交互,应用程序均可控制 MCI
设备。
Multimedia MCI 控件的事件(按钮定义)是可编程的。通过开发按钮事件代码,可以增加甚至完全重新定义按钮的功能。
MCI 能在单个窗体中支持多个 Multimedia MCI 控件实例,这样就可以同时控制多台 MCI 设备。每台设备需要一个控件。
发行注意 在创建和发布使用 Multimedia MCI 控件的应用程序时,应该在用户的 Microsoft Windows System 或 System32
目录中安装并注册相应的文件。Visual Basic 的Package and Deployment向导提供了一些工具,可以帮您编写安装程序,以正确安装。
|