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

建设工程监理考试网站seo查询 站长工具

建设工程监理考试网站,seo查询 站长工具,html5网页模板免费,公司网站建设公司在MFC中,文档一般用于存储数据,视图一般用于显示文档中存储的数据。因此我们常常需要将文档和视图相关联 单文档视图架构特点 单文档:只有一个文档类对象,只能存储一份数据 单文档视图架构使用 代码书写 接下来的代码中&#xf…

在MFC中,文档一般用于存储数据,视图一般用于显示文档中存储的数据。因此我们常常需要将文档和视图相关联

单文档视图架构特点

单文档:只有一个文档类对象,只能存储一份数据

单文档视图架构使用

代码书写

接下来的代码中,我们会见到MFC使用动态创建机制调用类加工厂创建的三个类对象

单文档架构的程序和我们之前写的程序存在一些区别,集中在应用程序类的InitInstance函数中

预备工作

1.由于下文代码中创建单文档模板类对象时需要一个资源,因此我们添加一个菜单资源:

这是我们添加的菜单资源,ID为ID_NEW

2.单文档视图架构程序要求我们为程序窗口的标题栏写一个名字,因此我们也需要添加一个字符串资源

注意:ID是固定的,为程序标题栏的名字

代码实现

#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 CMyFrameWnd : public CFrameWnd
{DECLARE_DYNCREATE( CMyFrameWnd )
};
IMPLEMENT_DYNCREATE( CMyFrameWnd, CFrameWnd )class CMyWinApp : public CWinApp
{
public:virtual BOOL InitInstance();
};
BOOL CMyWinApp::InitInstance()
{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;

执行过程

单文档视图架构的程序执行核心在于以下变量

也就是说,核心在于涉及以上对象的代码

	CSingleDocTemplate* pTemplate = new CSingleDocTemplate( IDR_MENU1, RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CMyFrameWnd),RUNTIME_CLASS(CMyView));AddDocTemplate( pTemplate );OnFileNew( );

接下来我们来观察该代码背后的原理

//单文档架构的模板类 
CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMyDoc),		            //文档类 类信息 RUNTIME_CLASS(CMyFrameWnd),      		//框架类 类信息RUNTIME_CLASS(CMyView));	            //视图类类信息
{this->m_pOnlyDoc = NULL;//唯一的文档类对象地址,此处尚未保存this->m_pDocClass = pDocClass;this->m_pFrameClass = pFrameClass;this->m_pViewClass = pViewClass;//此处的this为单文档模板类的对象//以上代码为单文档模板类的对象的成员变量赋值
}this->AddDocTemplate(pDocTemplate);//内部this指针应用程序类
{this->m_pDocManager = new CDocManager;//应用程序类-->文档管理成员变量m_pDocManager->AddDocTemplate(pTemplate);//内部this指针文档管理{m_templateList.AddTail(pTemplate);//将单文档模板类对象地址放入链表中//此时该链表就只有刚才存入的单文档模板类对象一个成员}
}//OnFileNew内部执行过程
OnFileNew( )//函数内部this为&theApp
{m_pDocManager->OnFileNew()//函数内部this为文档管理类对象地址{CDocTemplate* pTemplate = m_templateList.GetHead();//取出之前在链表中存入的单文档模板类对象地址pTemplate->OpenDocumentFile()//函数内部this为单文档模板类对象地址{OpenDocumentFile(..)//函数内部this为单文档模板类对象地址{pDocument = CreateNewDocument()//函数内部this为单文档模板类对象地址{CDocument* pDocument = m_pDocClass->CreateObject(); //类对象加工厂动态创建文档类对象,并返回对象地址。                       AddDocument(pDocument)//函数内部this为单文档模板类对象地址{m_pOnlyDoc = pDocument;//此时前文代码未赋值的文档类对象地址被赋值了}}pFrame = CreateNewFrame(pDocument..)//函数内部this为单文档模板类对象地址{CCreateContext context; ...context.m_pCurrentDoc = pDocument;//文档类对象地址context.m_pNewViewClass = m_pViewClass;//RUNTIME_CLASS(CMyView)CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject(); //动态创建框架类对象,并返回对象地址 pFrame->LoadFrame(...., &context);//创建框架窗口//后续过程看前一天的伪代码}}}}
}

http://www.dtcms.com/wzjs/461299.html

相关文章:

  • 网站开发语言为 php官方网站百度一下
  • 东莞港货网站建设sem竞价课程
  • 驻马店哪家做网站好cps广告联盟网站
  • 网站开发与维护是学什么怎样申请网站
  • 六安疫情最新消息今天封城了seo优化啥意思
  • 标签模板制作网站免费网站免费优化优化
  • 网站免费做招生宣传新闻头条今日最新消息
  • 哪个网站代做装修效果图百度免费咨询
  • l网站建设网络广告电话
  • 爱南宁app下载官网优化网络推广外包
  • 网站开发好还要空间吗成功营销十大经典案例
  • 网站建设低价无锡谷歌优化
  • 如何建立免费的网站厦门谷歌seo公司
  • 中国建设银行网站怎么改支付密码是什么泰安百度推广代理
  • 用asp.net 做网站青岛seo排名扣费
  • 风险网站怎么解决方法电子商务网站设计方案
  • 做网站的开源代码2022智慧树互联网与营销创新
  • 建站售后服务危机公关
  • 佛山专业英文网站建设百度云资源搜索入口
  • 企业门户定制网站建设公司百度高级搜索页面
  • 网站备案查询到什么资料营销托管全网营销推广
  • 折扣网站模板优化网站推广教程排名
  • 今日合肥发现一例seo搜索引擎优化岗位要求
  • 做视频网站需要流量百度一下打开网页
  • 京东商城网站建设目标关键词搜索引擎工具爱站
  • 企业宣传片短视频制作seo网络优化专员是什么意思
  • 邹城网站建设学it需要什么学历基础
  • wordpress 自动保存图片重庆seo论
  • 2018做网站前景好么app用户量排名
  • 做维修那个网站发布信息好seo3