设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Visual Basic >> VB程序中处理随机事件
精品推荐
Visual Basic点击TOP10
·VB中使用EXCEL输出
·用vb实现DES加解密算法(三)--解密
·vsprint打印实例
·VB实现SQL Server数据库备份/恢复
·DirectX 7 编程初步
·用vb实现DES加解密算法(二)--加密
·VB 贪吃蛇 单人版游戏 (原作)
·如何在IE右键菜单中添加菜单项以及如何添加IE任务栏按钮
·VB6.0中通过MSChart控件调用数据库
·让VB应用程序支持鼠标滚轮
编程开发点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·ASP.NET 程序中常用的三十三种代码
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·java笔试题
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

VB程序中处理随机事件

作者: 来源:网络文章 时间:2005-12-13 18:10:28

VB程序中处理随机事件(2)
调用),就产生这一事件.接收器的建立者就截获这一事件,并处理消息。为了避免接收不

必要的消息,声明了minMsg、maxMsg两个变量,以便对VbMsg中的iType属性进行过

滤。

Option Explicit

' 说 明:

' 客 户 消 息 接 收 类

' 定 义 接 收 消 息 事 件, 该 对 象 的 宿 主 类 应 截 获 该 事 件,

并 处 理接 收 到 的 消 息。

Public Event RecMsg(ByVal msg As VbMsg)

' 通 过 设 置 消 息 的 接 收 范 围, 可 以 过 滤 掉 不 需 要 的 消息

Public minMsg As Long

Public maxMsg As Long

' 该 对 象 的 标 志 编 号, 使 用 时 不 应 修 改 该 值

Public ID As Long

' 事 件 产 生 过 程, 只 应 由 消 息 服 务 器(MsgServer) 调 用

Public Sub SetMsg(msg As VbMsg)

If msg.iType >= minMsg And msg.iType <= maxMsg Then RaiseEvent RecMsg(msg)

End If End Sub ' '

根 据ID, 返 回 对 象 的 关 键 字, 只 应 由 消 息 服 务 器(MsgServer)调 用

Public Property Get Key() As String Key="ID:" & ID End Property

类模块之三:Global.bas ---- 本模块声明了两个全局变量,一个是接收器(MsgClient)列表(Clients),一个是接收器计数器,以为每个接收器分配一个唯一的ID标志。把变量放在单独的模块中,是为了实现数据在进程间的共享,是跨进程间消息传递的关键所在。(应保证在编译时工程是单线程的,否则数据共享则不能实现。)。

Option Explicit

/ 说 明:

/ 消 息 服 务 器 全 局 变 量

/消 息 接 收 客 户 列 表

Public Clients As New Collection

/ 消 息 接 收 客 户ID 计 数 器

Public CliCount As Long

类模块之四:MsgSrv.cls----本模块中定义了消息服务器类MsgServer,该类是消息广播引擎的主体,它主要管理维护消息接收器列表(Clients),将发送来的消息(调用SendMsg过程)依次发送给列表中的所有接收器。注意,这个类被声明为公共全局类,这主要是为了方便使用(不必在每个程序中再建立该类,过程名全局有效)。

Option Explicit

/说 明:

/消 息 服 务 器 类

/发 送 消 息

Public Sub SendMsg(msg As VbMsg)

Dim c As MsgClient

For Each c In Clients

c.SetMsg msg

DoEvents

Next c

End Sub

/增 删 消 息 接 收 客 户

Public Sub AddMsgClient(c As MsgClient)

CliCount = CliCount + 1

c.Id = CliCount

Clients.Add c, c.Key

End Sub

Public Sub DelMsgClient(c As MsgClient)

Clients.Remove c.Key

If Clients.Count = 0 Then CliCount = 0

End Sub

到这里,一个小巧灵活的消息广播引擎就完成了,它的使用范围很广,用起来也很方便,只需在工程中引入编译过的ActiveX部件,就可以直接调用SendMsg发送消息,可能在安装消息接收器(MsgClient)时会稍许有点麻烦,下面举一个简单的应用例子大致说明一下:

共3页 9 7 [1] [2] [38 :>

VB程序中处理随机事件 相关文章:
VB程序中处理随机事件 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com