欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 【上位机——MFC】单文档和多文档视图架构

【上位机——MFC】单文档和多文档视图架构

2025/5/12 17:58:55 来源:https://blog.csdn.net/weixin_39723539/article/details/147749006  浏览:    关键词:【上位机——MFC】单文档和多文档视图架构

单文档视图架构

特点:只能管理一个文档(只有一个文档类对象)

#include <afxwin.h>
#include "resource.h"//文档类
class CMyDoc :public CDocument {DECLARE_DYNCREATE(CMyDoc)	//支持动态创建机制
};
IMPLEMENT_DYNCREATE(CMyDoc,CDocument)	//支持动态创建机制//视图类
class CMyView : public CView {DECLARE_DYNCREATE(CMyView)	//支持动态创建机制public://重新CView类的OnDraw方法virtual void OnDraw(CDC* pDC);
};
IMPLEMENT_DYNCREATE(CMyView, CView)	//支持动态创建机制void CMyView::OnDraw(CDC* pDC) {pDC->TextOut(100,100,"视图窗口");
}class CMyFrameWnd :public CFrameWnd {DECLARE_DYNCREATE(CMyFrameWnd)	//支持动态创建机制
};
IMPLEMENT_DYNCREATE(CMyFrameWnd, CFrameWnd)	//支持动态创建机制class CMyWinApp :public CWinApp {
public:virtual BOOL InitInstance();
};BOOL CMyWinApp::InitInstance() {//NEW一个单文档模板CSingleDocTemplate* pTemplate = new CSingleDocTemplate(IDR_MENU1,RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMyFrameWnd), RUNTIME_CLASS(CMyView));AddDocTemplate(pTemplate);OnFileNew();m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE;
}CMyWinApp theApp;

多文档视图架构

特点:可以同时管理多个文档(可以有多个文档类对象)

#include <afxwin.h>
#include "resource.h"//文档类
class CMyDoc :public CDocument {DECLARE_DYNCREATE(CMyDoc)
};
IMPLEMENT_DYNCREATE(CMyDoc, CDocument)//视图类
class CMyView :public CView {DECLARE_DYNCREATE(CMyView)
public:virtual void OnDraw(CDC* pDC);
};
IMPLEMENT_DYNCREATE(CMyView, CView)void CMyView::OnDraw(CDC* pDC) {pDC->TextOut(100,100,"视图窗口");
}//子框架窗口类
class CMyChild :public CMDIChildWnd {DECLARE_DYNCREATE(CMyChild)
};
IMPLEMENT_DYNCREATE(CMyChild, CMDIChildWnd)//主框架窗口类 不支持动态创建
class CMyFrameWnd :public CMDIFrameWnd {};//应用程序类 不支持动态创建
class CMyWinApp :CWinApp {
public:virtual BOOL InitInstance();
};
BOOL CMyWinApp::InitInstance() {CMyFrameWnd* pFrame = new CMyFrameWnd;pFrame->LoadFrame(IDR_MENU1);m_pMainWnd = pFrame;pFrame->ShowWindow(SW_SHOW);pFrame->UpdateWindow();//创建子框架窗口CMultiDocTemplate* pTemplate = new CMultiDocTemplate(IDR_MENU2,RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMyChild), RUNTIME_CLASS(CMyView));AddDocTemplate(pTemplate);OnFileNew();OnFileNew();OnFileNew();return TRUE;
}CMyWinApp theApp;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词