正在阅读:在VB程序中处理随机事件在VB程序中处理随机事件

2005-06-10 10:20 出处: 作者:蛋蛋 责任编辑:moningfeng
类 模 块 之 二:MsgCli.cls ---- 本 模 块 是 对 客 户 接 收 端MsgClient 类 的 定 义, 这 相 当 于 一 个 消 息 接 收 器。 在 这 个 类 中 定 义 的 一 个RecMsg 事 件, 当 接 收 器 收 到 消 息 时( 过 程SetMsg 被 调 用), 就 产 生 这 一 事 件。 接 收 器 的 建 立 者 就 截 获 这 一 事 件, 并 处 理 消 息。 为 了 避 免 接 收 不 必 要 的 消 息, 声 明 了minMsg、maxMsg 两 个 变 量, 以 便 对VbMsg 中 的iType 属 性 进 行 过 滤。

  VERSION 1.0 CLASS   BEGIN   MultiUse = -1 'True   END   Attribute VB_Name = "MsgClient"   Attribute VB_GlobalNameSpace = False   Attribute VB_Creatable = True   Attribute VB_PredeclaredId = False   Attribute VB_Exposed = True   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 标 志。 把 变 量 放 在 单 独 的 模 块 中, 是 为 了 实 现 数 据 在 进 程 间 的 共 享, 是 跨 进 程 间 消 息 传 递 的 关 键 所 在。( 应 保 证 在 编 译 时 工 程 是 单 限 程 的, 否 则 数 据 共 享 则 不 能 实 现。)。

  Attribute VB_Name = "modGlobal"   Option Explicit   ' 说 明:   ' 消 息 服 务 器 全 局 变 量   ' 消 息 接 收 客 户 列 表   Public Clients As New Collection   ' 消 息 接 收 客 户ID 计 数 器   Public CliCount As Long

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品