字体
第(4/4)页
关灯
   存书签 书架管理 返回目录
去过滤消息,如同

    在主消息循环里一样。

    (13)WH_SHELL Hook

    外壳应用程序可以使用WH_SHELL Hook 去接收重要的通知。当外壳应用程序为激活状

    态并且当顶层窗口建立或者销毁时,系统调用WH_SHELL Hook 子程。WH_SHELL 共有5

    种情況:

    ? 只要有top-level、unowned 窗口被产生、起作用、或是被摧毁;

    ? 当Taskbar 需要重画某个按钮;

    ? 当系统需要显示关于Taskbar 的一个程序的最小化形式;

    ? 当目前的键盘布局状态改变;

    ? 当使用者按Ctrl+Esc 去执行Task Manager(或相同级别的程序)。

    按照惯例,外壳应用程序都不接收WH_SHELL 消息。所以在应用程序能够接收

    WH_SHELL 消息之前,应用程序必须调用SystemParcomtersInfo function 注册它自己。

    2.按使用范围分类

    按使用范围分类,主要有线程钩子和系统钩子。线程钩子监视指定线程的事件消息,系

    统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所

    以钩子函数必须放在独立的动态链接库(DLL)中。

    ? 如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子,那么系统会

    自动先调用线程钩子,然后调用系统钩子。

    ? 对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩子链。当前钩

    子处理结束后应把钩子信息传递给下一个钩子函数。而且最近安装的钩子放在链的开

    始,而最早安装的钩子放在最后,也就是后加入的先获得控制权。

    ? 钩子特别是系统钩子会消耗消息处理时间,降低系统xìng能。只有在必要的时候才安装

    钩子,在使用完毕后要及时卸载。

    10.7.2 使用钩子函数

    使用钩子函数的程序的步骤分为定义钩子函数、安装钩子和卸载钩子这3 步。下面详细

    介绍这3 个过程。

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·274·

    1.定义钩子函数

    钩子函数是一种特殊的回调函数。钩子监视的特定事件发生后,系统会调用钩子函数进

    行处理。不同事件的钩子

    松语文学免费小说阅读_www.16sy.com
上一页 目录 下一章