说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请教《深入浅出MFC》中有关“动态创建”的一个问题。

编辑:说三道四文库 发布时间:2017-12-12 04:38
HTML文档下载 WORD文档下载 PDF文档下载
在第3章“MFC六大关键技术之仿真”中的Frame6范例程序(用来测试动态创建)。有这样一个执行结果:

enter a class name...  CMyView  //屏幕提示输入类名称
CWnd Constructor
CMyView Constructor
Hello CMyView

已知继承关系是 CWnd->CView->CMyView,其中CWnd和CMyView都已利用
DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE这两个宏实现动态创建能力,而
CView只被DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC声明过。

我想请问:看屏幕显示的话,CView并未被构造,但CMyView可以不经CView,而在
CWnd的基础上构造吗?我想不通。
首先澄清 在C++中除了纯虚类之外,任何一个类都可以被创建。宏IMPLEMENT_DYNCREATE与DECLARE_DYNAMIC的差别是多了一个static CObject* Create().这个函数的功能只是为了生成一对象,并将指针传回。CView没有这个函数并不表明CView不能被创建。此时CView中的RuntimeClass的函数指针CObject* (Pascal * CreateObject)()是NULL, 而CWnd的RuntimeClass中的是指向static CObject* Create().

这样解释明白了吗?:)
谢谢HornblowerI的回复。
但可能我的问题没表述清楚。
我是这么想的,当程序通过比较待创建的类名和型录网中已存在的类信息,发现二者相匹配,并且m_pfnCreateObject!=NULL后,就可以利new,来创建一个类对象。而此后创建类对象的过程,我觉得,已经与“动态创建”无关了。那么单纯创建一个CMyView对象,不是应该按照
CWnd Constructor
CView Constructor
CMyView Constructor
的顺序来吗?
还请指教。谢谢。
gz
不好意思,是我看书不细,CView的构造函数根本没有“CView Constructor”这句声明,是空的。
VB怎样把VC++代码转换成VB代码 字符串中包含双引号-VB资料 字符串中文的问题 -VB资料 巧用CLIPBOARD建立图像数据库-VB资料 在VB中存取数据库中的图片 Access97的报表解决方案-VB资料 Access下如何使用通用对话框-VB资料 ADO简介 -VB资料 ADO三大对象的属性、方法、事件及常数(二)-VB资料 ADO三大对象的属性、方法、事件及常数(三)-VB资料 ADO三大对象的属性、方法、事件及常数(一)-VB资料 Data 控件使用有密码的 Access 数据库 -VB资料 Excel、Access、VB的结合应用 Microsoft SQL Server 7.0安装问题(二)-VB资料 主题: MDB文件的导出 使用 DAO-VB资料 Microsoft Access秘密、技巧和陷阱-VB资料 SQL的基本操作(1.数据类型) -VB资料 SQL的基本操作(2.数据库的相关操作)-VB资料 SQL的基本操作(3.表的相关操作) -VB资料 SQL的基本操作(4.数据的检索)-VB资料 SQL在VB中的使用及访问远程数据库 Text 转换为 Access MDB -VB资料 VB5.0数据库基础 非编程方式访问数据库-VB资料 VB用编程方式访问数据库 VB 5.0数据库设计技术讲座(4) VB5.0数据库编程经验小集 VB5在处理数据库时的几个“BUG” VB6.0中的几个新增数据库工具 VB处理数据库时求数据表记录总数的最佳方法 VB访问数据库的方案比较 ADO.NET和SYBASE 11.5 求sql语句! 这是怎么回事? 用java从数据库取出来的大量数据怎样用javascript保存在客户端? 招聘美工及网页制作 请问Crystal Reports在什么地方找阿! 数据库中时间的格式怎样写 请大家帮忙看看这个算法怎样实现 散分 JDevelop 9.0.5 出来了,哪儿可以下载?? 还是关于一个session的问题(希望大家都进来看看,讨论讨论) C#在WIN2003上操作Oracle9i错误! 一个据说没办法解决的问题!有兴趣的请进 编写一个非PNP的Driver,是否要检测设备是否存在?如果要检测,应该如何?开发工具:vc+DDK 想学DirectX编程,有没有好书和资料推荐一下 江湖救急,在线等 一个小问题! 一个ComboBox问题! 招聘美工及网页制作 用BDE的程序怎样在没有delphi的机器上运行? 有关datagrid的字段显示顺序问题 我的U盘有问题,想请教下大家;) 怎么转换MP3文件的比特率? 如何屏蔽最小化,最大化,以及关闭按钮 招聘美工及网页制作 C语言和汇编语言联合编译的问题 创建视图时,遇到一个表关联的问题:请教各位兄弟姐妹 请教如何让DBGird的最后一行的结果为上面全部对应记录的和? 求助子段合并的查询语句 Struts Struts 请问没人解答的问题如何处理? 结帖还是删除? 请教 数据库中的表与自由表的转换? 求助,在IE中无法打开word文件!!!急!!!! 高手帮我!!! 在WINDOWS的标准TREEVIEW中点右键如何得到点击的坐标? 如何把oracle中的数据结构导入access中去? 请问odbc方式和OLEDB方式有什么区别? 100询问:修改boot.ini仍无法实现双重启动. websphere的问题(1)? 我是第一次使用域.为什么无法在域控制器里增加用户?help me! 求助:模板的连接问题 strust 请问:哪里有人民邮电出版社的《个体软件工程》下载 ?(有分送) 存储过程执行出错,请帮忙看看!急! 请问:在sybase中的设备大小的设定,有没有一个标准?? include问题,屡试屡败 请问怎么才能用最简单的方法把程序做成服务? 程序设计文档怎么写啊?求教 不好意思,一个简单的问题 websphere的问题(2)? 衣旁字加果念什么字 为什么我对英语提不起兴趣?请问如何培养对英语的兴趣? 中国第一次举起社会主义的大旗是什么时候 我对英语提不起兴趣. 斯大林死后,率先举起社会主义改革大旗的人是谁? 四川今年的气候怎么这么反常?和云南的差不多了 第一题:设x,y是正实数,1/x+9/y=1,则x+y的最小值为___第二题:若二次不等式ax2+bx+c>0的解集是{x|0.2 1:已知f(x)在R上是奇函数,且f(x+4)=f(x),当x∈(0,2)时,f(x)=2x^2,则f(7)=?2:已知函数f(x)=a减去( z^x+1)分之1,若f(x)为奇函数,则a=?3:判断函数f(x)=│x+a│-│x-a│(a≠0)的奇偶性.4:判断f(x)=根号x 嗟余听鼓应官去 拼音嗟(jiē) 余(yú) 听(tīng) 鼓(gǔ) 应(yìng) 官(guān) 去(qù), 证明函数y=x的三次方-b(b是常数)在R上是增函 经过长期观察得到:在交通繁忙的时段内,某公路段汽车的车流量Y(千辆/小时)与汽车的平均速度V(KM/H)之间的函数关系为 y=920v/v的平方+3v+1600(v>0) (1)在该时段内,当汽车的平均速度V为多 调查称超6成贝卢斯科尼支持者支持其女伊朗称希望与“六方”就核计划开展严肃澳大利亚人口出生率回升 总量破230澳洲癌症死亡率调查:农村地区高于城市美国10月制造业增速为两年半来最快巴新一村庄因强降雨引发山体滑坡 或已eBay拍卖大屠杀遗物引众怒 一件囚数万伊朗抗议者举行“占领美国使馆”集安倍明年1月将访问非洲三国 意在完成巴新一村庄因强降雨引发山体滑坡 或已英国调查称超半数英国人坐飞机不信任女让“两个责任”落实到基层绿城VS泰达首发名单出炉:拉蒙领衔锋韩妆抒写中国大陆神话新篇章周一市场点评:下半周市场行情有望展开满仓必看,今天所有散户后悔终生,你中把爱欲拍成艺术!影史十佳性爱戏,第一申论热点分析:司法公信力我国首批三焦点晶体落户华厦 开启老花大盘不破不立 今日将现黄金坑(中东石油库存持续增加致油价濒临绝境,申论高分策略:从命题技术看申论答题中国通史拍创世神板砖神无龙战骑士巫临异世残剑诀赤脚医生深渊之子修行成真星月幻界我会兽言阿巴嘎旗旅游疏勒旅游安仁旅游水里旅游察瓦龙旅游打隆旅游三穗旅游石冈旅游新河旅游宁厂旅游宋岙旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘