background image

VB 高级编程初探

一、前言

很早以前就想写一篇关于子类技术( SubClass)的文章,不过由于时间

有限没有深入研究。这段时间由于工作需要用子类实现了大量的

Windows 消 息 捕 获, 正 好 今 天 有人 问 到 鼠 标 滚动 事 件 的 捕 获问 题

(这个问题我将在文末给出一个较简洁的方法),因此决定写这

篇文章,希望对大家有些帮助。

我们都知道 VB 有其局限性,我们也常常在试探通过某种方法拓展其应

用 范 围 , 正 如 我 在 以 前 讲 到 过 的 如 何 在 VB 中 使 用 隐 藏 的 指 针 操

作函数,如何突破限制使用 TOM 对象等等。今天讲到的子类技术

正是突破 VB 局限的又一有力工具。

二、子类(SubClass)技术简介

众所周知, Windows 是一个基于消息的系统,消息在 Windows 的对象之

间进行着传递。子类(SubClass)和 Windows 的钩子(Hook)机制

存在于消息系统之中,我们可以利用这些机制来操纵、修改甚至丢

弃那些在操作系统或是进程中传递的消息,以求改变系统的一些

行为。