- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc,,,单文档多模板,cmultidoctemplate
篇一:单文档程序转成多文档的方法
1。首先增加一个从CMDIChildWnd派生的CChildFrame,它将作文转换后的字窗口框架。
2。将程序中从CFrameWnd派生的主框架CMainFrame改为由CMDIFrameWnd派生。注意要改动IMPLEMENT_DYNAMIC和BEGIN_MESSAGE_MAP宏,另外成员函数中有调用CFrameWnd方法的要改为调用CMDIFrameWnd方法。否则你可能有幸得到畸形的框架。
3。在CMyAp::InitInstance()中将
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
改为:
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_*****,//换成你要的子类资源
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame), // main SDI frame window
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
由于主框架没有加到文档模版中,所以必须自己创建框架窗口
在上面一行后面加:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame-LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
另外,有些多文档程序可能不需要一启动就打开一个文档,可以用下面方法修改:
CCommandLineInfocmdInfo;
ParseCommandLine(cmdInfo);
//下面一行为新增
if(cmdInfo.m_nShellCommand==CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing;
4。改到这里已经基本上差不多了,但是从前的程序中可能有一些依赖于单文档的代码,注意将其找出一一改正。
篇二:Vc_MFC教程
1. MFC概述
1. MFC是一个编程框架
MFC (Microsoft Foundation Class Library基础类库)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立
Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
1. 封装
构成MFC框架的是MFC类库。MFC类库是C++类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。
(1)对Win32应用程序编程接口的封装
用一个C++ Object来包装一个Windows Object。例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
(2)对应用程序概念的封装
使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。MFC把许多类似的处理封装起来,替程序员完成这些工作。另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的窗口,用户通过
文档评论(0)