窗口子类化为何意?

root 2000-03-20 12:18:00
SubClass究竟是表示了什么?如何具体实现?我一直很模糊,还请各位大狭具体指点一二。
最好多讲一些:)
...全文
328 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
元明 2000-09-05
  • 打赏
  • 举报
回复
attention
FreeSky 2000-03-30
  • 打赏
  • 举报
回复
通常,MFC控件类有其自己的缺省消息处理函数。但如果由MFC控件类有特殊要求,并保留原有类的大部分功能,则没有必要自己生成一新类。只需派生一新类,在其过程处理函数或消息处理函数中加入自己的代码,子类化后,个人代码将先年一步截流此消息,从而达到自己的特殊要求。
root 2000-03-30
  • 打赏
  • 举报
回复
谢谢各位!
「已注销」 2000-03-20
  • 打赏
  • 举报
回复
就是用自己的函数对消息进行处理.举个例子.要按钮按下时不发送BN_CLICKED消息.
LRESULT CALLBACK BtnWndProc(HWND ,UINT ,WPARAM ,LPARAM) ;
WNDPROC WndProc=(WNDPROC)SetWindowLong(hButton,GWL_WNDPROC,(LONG)BtnWndProc);
LRESULT CALLBACK BtnWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_LBUTTONDOWN:
// own function
break;
default:
return CallWindowProc(WndProc,hWnd,msg,wParam,lParam);
}
return 0;
}
Un1 2000-03-20
  • 打赏
  • 举报
回复
简单地说就是拦截 WindProc 重新改写消息处理函数以处理特定的消息,对非特定消息继续调用原来的处理过程。
Jackzhu 2000-03-20
  • 打赏
  • 举报
回复
子类化相当于你可以对传递给窗口的消息进行预处理后,再由原窗口函数处理,如一个子类化的CEdit只接收数字输入.
Sniper 2000-03-20
  • 打赏
  • 举报
回复
根据我理解,就是把一个窗口以一个窗口类进行处理,包括(消息、消息响应方法等),而这个窗口类一般来说是你生成的一个CWnd派生类。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧