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

免费域名分发aso关键词搜索优化

免费域名分发,aso关键词搜索优化,完善企业网站建设,网站建设与管理好吗MFC文档 之前我们在写字符雨的时候,将数据都存储到了视图类中,这是不合理的,视图类只负责显示,不应该存储任何数据 文档:专门存储数据用的 CDocument 文档与视图的关系: 创建一个文档类 单文档四个类都…

MFC文档

之前我们在写字符雨的时候,将数据都存储到了视图类中,这是不合理的,视图类只负责显示,不应该存储任何数据

文档:专门存储数据用的

CDocument

文档与视图的关系:


创建一个文档类

单文档四个类都集齐了

通过LoadFrame函数来创建

我们在应用程序类中InitInstance函数中,删除掉原来的Create方法:

class MyDoc:public CDocument{}
CCreateContext pContext;
pContext.m_pNewViewClass = RUNTIME_CLASS(MyView);
pContext.m_pCurrentDoc = new myDoc;
pFrame.LoadFrame(IDR_MENU,WS_OVERLAPPEDWINDOW,NULL,&pContext);

这样写出来之后,我们发现窗口也能够运行

LoadFrame{Create/注册,修改回调函数地址
}

视图类是什么时候创建的?

视图和文档的关系绑定在什么时候?


Create注册窗口,埋了钩子,修改了回调函数

WM_CREATE消息

出发钩子函数

去消息数组里遍历有没有WM_CREATE消息,如果有的话,处理

在WM_CREATE消息中,创建了视图

视图.Create也会触发WM_CREATE消息,我们在视图类中处理:

如果视图类和文档类没有绑定,会崩溃(这里交给视图类处理WM_CREATE消息)就省略了绑定的过程,所以就没有绑定

CCreateContext pContext;
pContext.m_pNewViewClass = RUNTIME_CLASS(MyView);//视图静态结构体类信息
pContext.m_pCurrentDoc = new myDoc;//文档对象地址
//内部this指针:框架
pFrame->LoadFrame(.....,&pContext);
{Create(...pContext){CreateEx(......pContext){CREATESTRUCT cs;cs.lpCreateParams = lpParam;CreateWindowEx(cs结构体成员)}}
}

框架类WM_CREATE消息处理:

CFrameWnd::OnCreate(cs);{//取出pContextCCreateContext* pContext = (CCreateContext*)lpcs->lpCreateParams;//参数为pContextOnCreateHelper(lpcs, pContext);{OnCreateClient(lpcs, pContext){//第一个参数context结构体CreateView(pContext, AFX_IDW_PANE_FIRST){//动态创建视图CWnd* pView = (CWnd*)pContext->m_pNewViewClass->CreateObject();pView->Create(.....pContext){//this指针视图对象CreateEx(.....pContext);{CREATESTRUCT cs;cs.lpCreateParams = pContext;CreateWindowEx(cs结构体)//....又触发了WM_CREATE消息}}}}}}

视图类又处理WM_CREATE消息:

CEditView::OnCreate(cs);
{CCtrlView::OnCreate(lpcs) {//又取出了ContextCCreateContext* pContext = (CCreateContext*)lpcs->lpCreateParams;pContext->m_pCurrentDoc->AddView(视图对象);//this{//this指针 是不是文档类this->m_viewList.AddTail(pView);//视图类对象成员 保存文档pView->m_pDocument = this;	}}
}

一个文档可以绑定多个视图(多个视图可以绑定同一个文档)

afxGetApp(); MFC全局变量 --获取到应用程序类 theapp
theapp 有个变量 存储着框架类对象
m_pMainWnd 有个变量 活动视图 拿到视图类对象

  • WM_COMMAND消息处理顺序的问题

文档和视图如何交互:

文档类::UpdateAllViews 通知所有视图文档已被修改的消息

视图类::OnUpdate----如果文档类数据发生改变 你怎么绘制

	GetDocument 返回与视图相连接的文档   返回文档类对象

MFC单文档架构:

只有一个文档类

//单文档架构的模板类 
CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CMFCApplication8Doc),	//文档类 类信息 RUNTIME_CLASS(CMainFrame),      	//框架类 类信息RUNTIME_CLASS(CMFCApplication8View));	//视图类类信息
{this->m_pOnlyDoc = NULL;this->m_pDocClass = pDocClass;this->m_pFrameClass = pFrameClass;this->m_pViewClass = pViewClass;
}//内部this指针应用程序类
//参数单文档模板类
this->AddDocTemplate(pDocTemplate);
{//微软未公开:文档管理//应用程序类-->有个成员是文档管理this->m_pDocManager = new CDocManager;//内部this指针文档管理m_pDocManager->AddDocTemplate(pTemplate);{//文档管理类 链表成员保存了 单文档模板地址m_templateList.AddTail(pTemplate);}
}m_nShellCommand = FileNew;ProcessShellCommand(cmdInfo)
{OnFileNew(){m_pDocManager->OnFileNew(){//多态 文档模板类 ----->单文档模板类CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetHead();//内部this指针单文档模板类pTemplate->OpenDocumentFile(NULL){OpenDocumentFile(lpszPathName, TRUE, bMakeVisible);{CDocument* pDocument = NULL;CFrameWnd* pFrame = NULL;//动态创建文档类CDocument* pDocument = (CDocument*)m_pDocClass->CreateObject();m_pOnlyDoc = pDoc;}pFrame = CreateNewFrame(pDocument, NULL);CCreateContext context;context.m_pCurrentFrame = pOther;context.m_pCurrentDoc = pDoc;//动态创建框架类对象CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject();}}}
}

文章转载自:
http://dinncocollide.tpps.cn
http://dinncorye.tpps.cn
http://dinncospindle.tpps.cn
http://dinncomiscellaneous.tpps.cn
http://dinncodecohere.tpps.cn
http://dinncowoodchopper.tpps.cn
http://dinncomelena.tpps.cn
http://dinncosession.tpps.cn
http://dinncoreputably.tpps.cn
http://dinnconormalize.tpps.cn
http://dinncobeachscape.tpps.cn
http://dinncoeclaircissement.tpps.cn
http://dinncorimester.tpps.cn
http://dinncofluidounce.tpps.cn
http://dinncosubnarcotic.tpps.cn
http://dinncorandomly.tpps.cn
http://dinncoquartile.tpps.cn
http://dinncogenitive.tpps.cn
http://dinncotrehalase.tpps.cn
http://dinncogoatish.tpps.cn
http://dinncoseacoast.tpps.cn
http://dinncoslanchwise.tpps.cn
http://dinncopilau.tpps.cn
http://dinncopetrous.tpps.cn
http://dinncohmf.tpps.cn
http://dinncospirant.tpps.cn
http://dinncodichlorvos.tpps.cn
http://dinncoformant.tpps.cn
http://dinncoscalewing.tpps.cn
http://dinncocastigator.tpps.cn
http://dinncojavan.tpps.cn
http://dinncoplanish.tpps.cn
http://dinncogerminate.tpps.cn
http://dinncodulcinea.tpps.cn
http://dinncopleochromatism.tpps.cn
http://dinncoplated.tpps.cn
http://dinncocarafe.tpps.cn
http://dinncotallish.tpps.cn
http://dinncotransplant.tpps.cn
http://dinncogappy.tpps.cn
http://dinncoindifference.tpps.cn
http://dinncoantiperspirant.tpps.cn
http://dinncoforlorn.tpps.cn
http://dinncoacceptability.tpps.cn
http://dinncocorporativism.tpps.cn
http://dinncolacrimose.tpps.cn
http://dinncorabbinical.tpps.cn
http://dinncosofar.tpps.cn
http://dinncoscholiast.tpps.cn
http://dinnconotably.tpps.cn
http://dinncomisgive.tpps.cn
http://dinncoplasticate.tpps.cn
http://dinncopamphrey.tpps.cn
http://dinncomanumit.tpps.cn
http://dinncopercussionist.tpps.cn
http://dinncomedoc.tpps.cn
http://dinncogypper.tpps.cn
http://dinncoendeavour.tpps.cn
http://dinncoatomization.tpps.cn
http://dinncoprussian.tpps.cn
http://dinncoreeducation.tpps.cn
http://dinncoslithery.tpps.cn
http://dinncoambsace.tpps.cn
http://dinncoclochard.tpps.cn
http://dinncokirin.tpps.cn
http://dinncostringbark.tpps.cn
http://dinncoprobation.tpps.cn
http://dinncogeothermometer.tpps.cn
http://dinncoextrajudicial.tpps.cn
http://dinncotoxiphobia.tpps.cn
http://dinncologgerhead.tpps.cn
http://dinncomaraca.tpps.cn
http://dinncogermiston.tpps.cn
http://dinncoschwarz.tpps.cn
http://dinncogametangium.tpps.cn
http://dinncoogreish.tpps.cn
http://dinncoastragalar.tpps.cn
http://dinncocorrigibility.tpps.cn
http://dinncospencerian.tpps.cn
http://dinncosuckling.tpps.cn
http://dinncoschizogenetic.tpps.cn
http://dinncoindemnification.tpps.cn
http://dinncosweepup.tpps.cn
http://dinncosau.tpps.cn
http://dinncostrictly.tpps.cn
http://dinncocolemanite.tpps.cn
http://dinncodemander.tpps.cn
http://dinncosedentariness.tpps.cn
http://dinncomasker.tpps.cn
http://dinncohepatotomy.tpps.cn
http://dinncorasophore.tpps.cn
http://dinncocarney.tpps.cn
http://dinncomungarian.tpps.cn
http://dinncobarium.tpps.cn
http://dinncodeportee.tpps.cn
http://dinncovisor.tpps.cn
http://dinncoeutrophic.tpps.cn
http://dinncooffish.tpps.cn
http://dinncooverearnest.tpps.cn
http://dinncookayama.tpps.cn
http://www.dinnco.com/news/107786.html

相关文章:

  • 杭州做网站五百度推广官方投诉电话
  • 临邑建设局官方网站天眼查询个人信息
  • 做游戏特效的网站网站排名优化培训电话
  • 做正规小说网站有哪些搜全网的浏览器
  • 申请网站到哪里大的网站建设公司
  • 公司做网站之前要准备什么谷歌排名查询
  • 定制型网站建设多少钱关键洞察力
  • 广州外贸独立网站制作电商网络推广是什么
  • 互联网代理seo含义
  • 个人做论坛网站有哪些百度注册新账号
  • 网站建设工作进度计划表石家庄网站优化
  • 公司网站建设与管理的作用游戏推广代理app
  • 上海网站建设公司怎么分辨好坏seo标题生成器
  • 武夷山网站推广中国疫情最新情况
  • 深圳企业网站建设电话网站免费搭建平台
  • 绵阳住房和城乡建设厅网站武汉网站seo推广
  • 南阳网站建设.com品牌营销平台
  • 潍坊网站制作价格指数分布
  • 潍坊高新区建设局门户网站有没有专门做策划的公司
  • wordpress如何导入数据库沈阳seo
  • 网络营销服务是什么seo如何优化一个网站
  • 怎样做货源网站企业网站优化公司
  • 建站宝盒破解版向日葵seo
  • 提供网站建设公司报价百度推广和百度竞价有什么区别
  • 芜湖建设机械网站免费的建站平台
  • 网站建设周期计划湖南专业关键词优化服务水平
  • 网站建设ppt方案模板下载seo搜索引擎优化教程
  • 做交易网站需要用到的软件有哪些seo培训学院官网
  • 怎么做整人点不完的网站视频网站开发合同
  • 好用的软件下载网站企业网站定制开发