SubClassDialog使用(子类化)

SubClass Dialog 上面的一个控件呀!
SubClass 某个控件后,其原来的 WindowProc 替换成你自己写的 CYourCWndClass 的 WindowProc,这样你就
可以处理这个控件的所有消息了;用 ClassWizard 维护自己的 CYourCWndClass 就可以了。

    在MFC中除了SubClassDlgItem外还有SubclassWindow函数用来执行同样的功能。在与某个控件ID关联起来
之后,所有该控件的消息将会有该类来响应。通常使用过程如下
    一、从希望Subclass的控件派生一个类例如从CEdit->CMyEdit;
    二、在CMyEdit中完成希望处理的消息,例如OnChar等;
    三、在对话框类中定义一个CMyEdit类的成员变量m_myEdit;
    四、在Dialog的OnInitDialog中加入m_myEdit(IDC_EDIT, this);
这样当在IDC_EDIT上发生OnChar时,将会调用CMyEdit中的OnChar

补充一下,用一个窗口过程替换另一个过程的行为叫SUBCLASSING,这是WINDOWS意义上的派生子类,与面向对
象语言的派生子类是完全不同的概念。SubClassDlgItem让对话框内指定子控制自己的窗口过程替代默认窗口
过程,以拦截消息。

注意:在VC 中,DoDataExchange函数中的DDX_Control之类的函数会调用SubClassDlgItem完成窗口子类化,
这样控件自己就能处理消息了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值