类 模 块 之 二: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 |
正在阅读:在VB程序中处理随机事件在VB程序中处理随机事件
2005-06-10 10:20
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键