当前位置: 首页 > ds >正文

【上位机——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;
http://www.xdnf.cn/news/4259.html

相关文章:

  • java类=null的回收
  • debuginfo详解
  • Python基本语法(类和实例)
  • 【RocketMQ 高可用】- 从节点同步偏移量源码解析
  • 计算机体系结构 第九章 (附带移数网络直径证明和取值情况)
  • 刷leetcodehot100返航版--哈希表5/5、5/6
  • Java抽象类与接口详解
  • 【项目】基于ArkTS的网吧会员应用开发(1)
  • 访问计划(C++)
  • BC9 printf的返回值
  • 学习路线(工业自动化软件架构)
  • Imagine Explainers:AI × 可视化 × 趣味讲解,让复杂变简单
  • 1. 设计哲学与核心价值
  • C/C++滑动窗口算法深度解析与实战指南
  • 2025年第十六届蓝桥杯省赛JavaB组真题
  • 【RocketMQ Broker 相关源码】-注册 broker 信息到所有的 NameServer
  • gcc/g++用法摘记
  • torch.nn.Sequential() and torch.nn.ModuleList()
  • 用输入输出变量根据超稳定性理论设计模型参考自适应系统
  • 迭代器模式
  • map和set的设计以及红黑树的设计
  • 英伟达语音识别模型论文速读:Fast Conformer
  • 学习黑客Nmap 实战
  • Java学习手册:Spring 多数据源配置与管理
  • 信息系统项目管理工程师备考计算类真题讲解十二
  • 破局者手册 Ⅰ:测试开发核心基础,解锁未来测试密钥!
  • 【NLP】27. 语言模型训练以及模型选择:从预训练到下游任务
  • RAG知识库只是表面简单!
  • Kubernetes排错(七)-节点排错
  • 除了java.nio.file.StandardCopyOption,还有哪些类可以实现文件的复制和移动?