Windows Message Handling--Subclassing 子类化

Subclassing is a technique that allows an application to intercept and process messages sent or posted to a particular window before the window has a chance to process them. This is typically done by replacing the Window Procedure for a window with application-defined window procedure.

子类化是一种允许应用程序在窗口处理发送或投递到它的消息之前进行拦截和处理的技术。这通常通过用自定义的窗口过程替换原来的窗口过程来实现。

这是Windows Message Handling - Part 4上的一段话,看过之后感觉这个功能挺不错。遂记之如下:

 

文中介绍了子类化的两种情况

SDK方式:

1、创建新的窗口处理函数NewWNDPROC 在新的窗口处理函数中做出特别的处理,之后把其余的交给旧窗口函数处理。使用CallWindowProc函数。

2、用新的窗口函数代替旧的窗口函数,并保存旧的,如使用SetWindowLong函数。

 

MFC方式: mfc方式需要创建目标父类的子类,并在其中改写感兴趣的消息函数。

一种方式是使用自定义子类直接关联父类控件

另外一种方式是生成子类对象实例,并调用对应的CWnd::SubclassWindow或CWnd::SubclassDlgItem函数。

 

除此之外,作者还提到了消息反射的问题,可惜作者没有详细解释。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值