子类化(SubclassWindow)技术

窗口子类化的作用

简单讲就是用自定义的窗口过程替换原有的窗口过程,用自定义的窗口过程来处理该窗口的消息响应。

窗口子类化技术最大的特点就是能够截取 Windows的消息。一旦用户自定义的窗口函数截取了传向原窗口函数的消息,就可以对被截取的消息进行如下处理:

将其传给原来的窗口函数。这是对大多数消息应该采取的措施,因为子类通常只对原来的窗口特性作少量的改动

截取该消息,阻止其向原窗口函数发送。

修改该消息,修改完毕以后再向原窗口函数发送。

Windows SDK提供了一些设计好的窗口类,如 EDIT、 LISTBOX、 TREEVIEW等。通过截取这些通用窗口类的消息,用户程序可以为它们添加新的特性,改善其外观,扩充其功能。

子类化的优点主要体现在以下两个方面:首先,它不需要创建新的窗口类,不需要了解一个窗口的窗口过程。这在原来的窗口函数是由别人编写,而且创建过程不可见的情况下非常有用;其次,子类化比较容易实现,因为所有要做的工作仅仅就是写一个窗口函数

 

在 VC中实现窗口子类化

上面介绍的子类化是从 Windows本身的窗口函数概念来讲的,实际上属于 SDK( Software Development Kit)编程的范畴,在 MFC中情况有所不同。下面将分别描述在这两种情况下窗口子类化实现的方法。

 

VC中基于 SDK编程的窗口子类化

VC中基于 SDK编程的窗口子类化的基本步骤如下:

(1)      正常创建原始窗口,得到窗口的句柄

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值