文档模板是一个特殊的对象,它帮助MFC动态地创建并联合-->文档、视图和视图框架CMultiDocTemplate * pDocTemplate;//文档模板
pDocTemplate = new CmultiDocTemplate(
IDR_MMYDOCTYPE, //资源ID
RUNTIME_CLASS(CMyDoc), //文档
RUNTIME_CLASS(CChildFrame), //视图的框架窗口
RUNTIME_CLASS(CMyView)); //视图
AddDocTemplate(pDocTemplate);
为什么不可以这样用呢? 以下也可以说是动态生成对象的呀
pDocTemplate1 = new CMyDoc;
pDocTemplate2 = new CChildFrame;
pDocTemplate3 = new CMyView;用RUNTIME_CLASS的好处在那???
pDocTemplate = new CmultiDocTemplate(
IDR_MMYDOCTYPE, //资源ID
RUNTIME_CLASS(CMyDoc), //文档
RUNTIME_CLASS(CChildFrame), //视图的框架窗口
RUNTIME_CLASS(CMyView)); //视图
AddDocTemplate(pDocTemplate);
为什么不可以这样用呢? 以下也可以说是动态生成对象的呀
pDocTemplate1 = new CMyDoc;
pDocTemplate2 = new CChildFrame;
pDocTemplate3 = new CMyView;用RUNTIME_CLASS的好处在那???
解决方案 »
- 这个类型的控件,应该用什么来重绘比较方便
- 【基础问题】关于new/delete操作符
- 通信延时求助
- 为何在MFC ClassWizard 中的类名中,有些类看不到
- *** 300分 ,我就不信没有人会这个问题: 实现 IE下载完毕后的<打开文件夹>功能,焦点在指定的文件夹上 <二>***
- 为什么我在ONTIMER里用UPDATEDATA(FALSE)更新数据会有内存泄漏?(在线)
- API新手求援:我的一个简单程序编译通过后,运行时无反应(献上100分)
- 怎样旋转、移动、缩放一个图形
- MFC如何将文档默认保存为指定的扩展名?
- 高手:如何改变CEdit控件的背景色?
- 求教快速图像解码源程序!
- 应该如何处理这个鼠标信息(送高分)
而RUNTIME_CLASS(CMyView)生成的是一个类对象
http://wlbookwl.myrice.com/vcbook.htm#mfcsyqc
MFC里面的CObject以及它的子类通过宏DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC支持运行时类型信息——每个类有一个静态的CRuntimeClass对象变量,在IMPLEMENT_DYNAMIC宏里面把各个类对应的CRuntimeClass静态对象变量用链表形式串起来(具体怎么实现可以看《看深入浅出MFC》)
CRuntimeClass通过函数指针CObject* (PASCAL* m_pfnCreateObject)()支持动态创建对象(必须有缺省形式的构造函数)
***************************
* .-'''''-. *
* .' `. *
* : : *
* : :*
* : _/| :*
* : =/_/ : *
* `._/ | .' *
* ( / ,|...-' *
* \_/^\/||__ *
* _/~ `""~`"` \_ *
* __/ -'/ `-._ `\_\__ *
*/ /-'` `\ \ \-.\ *
***************************