他们的机制是一样吧?(请确认)
如果hook可以代替subclass,为何还要subclass呢?

解决方案 »

  1.   

    机制完全不同
    subclass是基于MFC级别的,相当于替换窗口过程。
    hook是基于操作系统级别的,是接管消息的。
    subclass没有hook功能强大是对的。
      

  2.   

    机制不一样subclass方便,简单
      

  3.   

    “subclass是基于MFC级别的”,我不赞同这句话,用SDK也可以实现啊
      

  4.   

    http://www.csdn.net/develop/Read_Article.asp?Id=11847
    http://www.csdn.net/Develop/Read_Article.asp?Id=7213
      

  5.   

    subclass似乎要原来的窗口过程的支持,因为MFC已将其实现,所以一般用于MFC下。你要是用SDK的话当然也可以,只是麻烦点而已。
    hook可以用于任何消息队列。
      

  6.   

    所谓subclass(子类化)就是用自己的窗口处理函数来接管某个窗口默认的窗口处理函数。可以参考 Iczelion 的Win32汇编教程和Windows核心编程。使用GetWindowLong和SetWindowLong来实现。
      

  7.   

    这样吧,你把hook理解成一种官方提供的,可跨进程的subclass。
      

  8.   

    hook可以用于任何消息队列。但一个hook只截获某一类消息。
    subclass截获某窗口的所有消息。