CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

为什么MFC要用一个hook把一个窗口的WndProc替换为AfxWndProc?

楼主letok(letok)2005-02-04 00:15:16 在 VC/MFC / 基础类 提问

看到书上说,  
  在CWnd::Create()里,在呼叫CreatEx(...)创建窗口之前,有一个hook,该hook会把窗口消息处理函数替换为AfxWndProc.WndProc不是注册窗口时的一个参数吗?注册窗口时改一下参数不就可以了吗?干吗这么费劲呢? 问题点数:20、回复次数:12Top

1 楼letok(letok)回复于 2005-02-04 01:15:10 得分 0

更奇怪的是,AfxWndProc()呼叫AfxCallWndProc(),   AfxCallWndProc()呼叫pWnd->WindowProc()  
   
  AfxWndProc(...)  
    AfxCallWndProc(...)  
        pWnd->WindowProc(...)  
   
  折腾一溜够后,消息又回到了自己的窗口。这是干什么呀?Top

2 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-02-04 08:43:32 得分 5

WindowProc我觉得应该前后是不同的,不然不成了死循环了吗Top

3 楼virtualfunction(virtualfunction)回复于 2005-02-04 17:42:28 得分 5

只是为了将消息送到“应用程序框架”的不同类中--命令绕行,使用户有机会处理消息。Top

4 楼hbhuyang(胡杨)回复于 2005-02-04 18:01:49 得分 5

借用这地方问个问题。  
  怎样把一负的浮点数如-1.30,  
   
  转化成一个五位的ASCII串。(对应上面各个)  
  请各位帮忙给解决一下  
  是不是用Ssprintf(   )?  
  Top

5 楼jinyt(人就是江湖)回复于 2005-02-04 18:25:44 得分 5

sprintf("%f",-1.30)Top

6 楼arkuka()回复于 2005-02-04 21:55:16 得分 0

深入浅出MFC(第二版)第九章   消息映射与命令传递   P421  
  "这种看起来很迂回又怪异的做法,是为了包容新的3D   Controls(细节就容我省略了吧)",并与MFC2.5兼容......"Top

7 楼lengfeng281(冷风)回复于 2005-02-04 22:30:52 得分 0

兼容?  
  让各不同类一一执行也解释不通啊  
  不懂  
  是不是只有微软那几个老头知道?  
  Top

8 楼mahatma_cn(研究硕士生)回复于 2005-02-05 09:03:55 得分 0

"这种看起来很迂回又怪异的做法,是为了包容新的3D   Controls(细节就容我省略了吧)",并与MFC2.5兼容......"  
  ----------------------------  
  同意,有空可以再看看另外一本《深入解析mfc》上面有详细的解释!Top

9 楼ringphone(临风)回复于 2005-02-05 09:06:57 得分 0

AfxWndProc.WndProc是WNDPROC类型,类成员函数除非是静态的,否则无法转换为WNDPROC类型,所以设置时没有办法把pWnd->WindowProc赋给他。HOOK窗口第一时间取得窗口控制权,AfxWndProc()呼叫AfxCallWndProc(),   AfxCallWndProc()呼叫pWnd->WindowProc(),这里面做了一些事情,AfxWndProc是把HWND和pWnd绑定,AfxCallWndProc根据HWND查表得到绑定的pWnd,然后去调用pWnd->WindowProc,这样才转到了窗口类内部的窗口过程。Top

10 楼bloggs(福)回复于 2005-02-05 12:24:53 得分 0

楼上的,  
   
  类成员函数除非是静态的,否则无法转换为WNDPROC类型。。。  
   
  说的好,正解  
   
  临风,上面这段话是书里的?Top

11 楼hbhuyang(胡杨)回复于 2005-02-05 12:36:35 得分 0

如何把字符数组1str1从指定位置复制指定个数5的字符到字符树组2str2中?Top

12 楼ringphone(临风)回复于 2005-02-05 13:54:45 得分 0

呵呵,这段话是我自己的,献丑了。Top

相关问题

  • 如何Hook桌面的WndProc
  • MFC?
  • mfc
  • MFC
  • mfc
  • 怎样HOOK另一个程序的GWL_WNDPROC,急~~~~
  • HOOK
  • HOOK
  • mfc<api?
  • MFC Macros

关键词

  • 函数
  • 字符
  • 兼容
  • mfc
  • 消息
  • afxwndproc
  • afxcallwndproc
  • wndproc
  • pwnd
  • windowproc

得分解答快速导航

  • 帖主:letok
  • fanqing
  • virtualfunction
  • hbhuyang
  • jinyt

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo