关于孙鑫VC++深入讲解的几个迫切解决的问题

疯癫小程序 2010-03-01 12:50:32
问题一:
p77 里#define afxCurrentWinApp AfxGetModuleState()->m_pCurrentWinApp
原文:我们返回去看看前面例3-5所示的CWinApp构造函数代码,就可以知道AfxGetApp函数返回的是在CWinApp构造函数里保存的this指针。对Test程序来说,这个this指针实际上指向的是CTestApp的对象:theApp。也就是说,对Test程序来说:pThread和pApp所指向的都是CTestApp的对象,即theApp全局对象。
疑惑点:这里m_pCurrentWinApp只是类里的一个成员变量,前面CWinApp构造函数里pModuleState->m_pCurrentWinApp=this处m_pCurrentWinApp和#define afxCurrentWinApp AfxGetModuleState()->m_pCurrentWinApp里的m_pCurrentWinApp是一个吗?我怎么一点也看不出他们是同一个.

问题二:
p79 里wndcls.lpszClassName=_afxWnd;
原文:AfxEndDeferRegisterClass函数首先判断窗口类的类型,然后赋予相应的类名(wndcls.lpszClassName变量),这些类都是MFC预定义的.
疑惑点:我跟踪了_afxWnd(gotoDefinition)终止弹出对话框找不到,那在MFC里哪里有它的预定义呢?

问题三:
p83 里if(!PreCreateWindow(cs))
原文:再回到例3-14所示CWnd类的CreateEx函数实现代码中,可以发现该函数中又调用了PreCreateWindow函数,后者是一个虚函数。因此这里实际上调用的是子类,即CMainFrame类的PreCreateWindow函数.
疑惑点:我查了下再如下继承关系中CWin-->CFrameWin-->CMainFrame中,这三个类均有PreCreateWindow函数,而且都为虚函数,那么再例3-14中CWin::CreateEx函数中的PreCreateWindow(cs)调用的会是CMainFrame的PreCreateWindow而不是CWin的我就真的不能理解了.



PS:对以上三个问题,各位网友可以条您自己会的回答,我对每个会分别给分,麻烦大家了
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhuwy 2010-03-01
  • 打赏
  • 举报
回复
问题二 一般来说Mfc是用宏来定义的,你可以右键转到定义,估计要多转几次,或者在Mfc的源码直接搜索。
wuhuwy 2010-03-01
  • 打赏
  • 举报
回复
问题三 Cwnd类中的Precreatewindow是虚函数,Cmainframe是它子类的子类,根据虚函数的多态性,在运行时调用的应该是子类的函数,而不是调用类自身的。
wuhuwy 2010-03-01
  • 打赏
  • 举报
回复
问题一 两者是同一个变量,因为Afxgetmodulestate获得的就是pModulestate,你可以调试看一下两者的值是否相等。宏定义是为了方便编码,这个没什么关系的。
jyh_baoding 2010-03-01
  • 打赏
  • 举报
回复
有些问题需自己深入的理解
yhp1888 2010-03-01
  • 打赏
  • 举报
回复
这就是深入讲解?只有深入,没有浅出?
yhp1888 2010-03-01
  • 打赏
  • 举报
回复
我没有看过孙鑫VC++的书,但本论坛不少网友,在回答别人说如何学VC的问题时,都推荐这本书。
可是,楼主问这个问题,去没人回答,是不是推荐给别人看的书,自己都不看。

真的,我看不懂。我觉得本来是很简单的事,孙鑫却说的复杂了。

本来我还懂,一看楼主说的,我却不懂了。

16,471

社区成员

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

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

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