中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

家紡 網(wǎng)站建設(shè) 中企動(dòng)力百度旗下有哪些app

家紡 網(wǎng)站建設(shè) 中企動(dòng)力,百度旗下有哪些app,科技有限公司簡介模板,wordpress頁腳頁眉插件MFC文檔 之前我們在寫字符雨的時(shí)候,將數(shù)據(jù)都存儲(chǔ)到了視圖類中,這是不合理的,視圖類只負(fù)責(zé)顯示,不應(yīng)該存儲(chǔ)任何數(shù)據(jù) 文檔:專門存儲(chǔ)數(shù)據(jù)用的 CDocument 文檔與視圖的關(guān)系: 創(chuàng)建一個(gè)文檔類 單文檔四個(gè)類都…

MFC文檔

之前我們在寫字符雨的時(shí)候,將數(shù)據(jù)都存儲(chǔ)到了視圖類中,這是不合理的,視圖類只負(fù)責(zé)顯示,不應(yīng)該存儲(chǔ)任何數(shù)據(jù)

文檔:專門存儲(chǔ)數(shù)據(jù)用的

CDocument

文檔與視圖的關(guān)系:


創(chuàng)建一個(gè)文檔類

單文檔四個(gè)類都集齊了

通過LoadFrame函數(shù)來創(chuàng)建

我們在應(yīng)用程序類中InitInstance函數(shù)中,刪除掉原來的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);

這樣寫出來之后,我們發(fā)現(xiàn)窗口也能夠運(yùn)行

LoadFrame{Create/注冊,修改回調(diào)函數(shù)地址
}

視圖類是什么時(shí)候創(chuàng)建的?

視圖和文檔的關(guān)系綁定在什么時(shí)候?


Create注冊窗口,埋了鉤子,修改了回調(diào)函數(shù)

WM_CREATE消息

出發(fā)鉤子函數(shù)

去消息數(shù)組里遍歷有沒有WM_CREATE消息,如果有的話,處理

在WM_CREATE消息中,創(chuàng)建了視圖

視圖.Create也會(huì)觸發(fā)WM_CREATE消息,我們在視圖類中處理:

如果視圖類和文檔類沒有綁定,會(huì)崩潰(這里交給視圖類處理WM_CREATE消息)就省略了綁定的過程,所以就沒有綁定

CCreateContext pContext;
pContext.m_pNewViewClass = RUNTIME_CLASS(MyView);//視圖靜態(tài)結(jié)構(gòu)體類信息
pContext.m_pCurrentDoc = new myDoc;//文檔對象地址
//內(nèi)部this指針:框架
pFrame->LoadFrame(.....,&pContext);
{Create(...pContext){CreateEx(......pContext){CREATESTRUCT cs;cs.lpCreateParams = lpParam;CreateWindowEx(cs結(jié)構(gòu)體成員)}}
}

框架類WM_CREATE消息處理:

CFrameWnd::OnCreate(cs);{//取出pContextCCreateContext* pContext = (CCreateContext*)lpcs->lpCreateParams;//參數(shù)為pContextOnCreateHelper(lpcs, pContext);{OnCreateClient(lpcs, pContext){//第一個(gè)參數(shù)context結(jié)構(gòu)體CreateView(pContext, AFX_IDW_PANE_FIRST){//動(dòng)態(tài)創(chuàng)建視圖CWnd* pView = (CWnd*)pContext->m_pNewViewClass->CreateObject();pView->Create(.....pContext){//this指針視圖對象CreateEx(.....pContext);{CREATESTRUCT cs;cs.lpCreateParams = pContext;CreateWindowEx(cs結(jié)構(gòu)體)//....又觸發(fā)了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;	}}
}

一個(gè)文檔可以綁定多個(gè)視圖(多個(gè)視圖可以綁定同一個(gè)文檔)

afxGetApp(); MFC全局變量 --獲取到應(yīng)用程序類 theapp
theapp 有個(gè)變量 存儲(chǔ)著框架類對象
m_pMainWnd 有個(gè)變量 活動(dòng)視圖 拿到視圖類對象

  • WM_COMMAND消息處理順序的問題

文檔和視圖如何交互:

文檔類::UpdateAllViews 通知所有視圖文檔已被修改的消息

視圖類::OnUpdate----如果文檔類數(shù)據(jù)發(fā)生改變 你怎么繪制

	GetDocument 返回與視圖相連接的文檔   返回文檔類對象

MFC單文檔架構(gòu):

只有一個(gè)文檔類

//單文檔架構(gòu)的模板類 
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;
}//內(nèi)部this指針應(yīng)用程序類
//參數(shù)單文檔模板類
this->AddDocTemplate(pDocTemplate);
{//微軟未公開:文檔管理//應(yīng)用程序類-->有個(gè)成員是文檔管理this->m_pDocManager = new CDocManager;//內(nèi)部this指針文檔管理m_pDocManager->AddDocTemplate(pTemplate);{//文檔管理類 鏈表成員保存了 單文檔模板地址m_templateList.AddTail(pTemplate);}
}m_nShellCommand = FileNew;ProcessShellCommand(cmdInfo)
{OnFileNew(){m_pDocManager->OnFileNew(){//多態(tài) 文檔模板類 ----->單文檔模板類CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetHead();//內(nèi)部this指針單文檔模板類pTemplate->OpenDocumentFile(NULL){OpenDocumentFile(lpszPathName, TRUE, bMakeVisible);{CDocument* pDocument = NULL;CFrameWnd* pFrame = NULL;//動(dòng)態(tài)創(chuàng)建文檔類CDocument* pDocument = (CDocument*)m_pDocClass->CreateObject();m_pOnlyDoc = pDoc;}pFrame = CreateNewFrame(pDocument, NULL);CCreateContext context;context.m_pCurrentFrame = pOther;context.m_pCurrentDoc = pDoc;//動(dòng)態(tài)創(chuàng)建框架類對象CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject();}}}
}
http://www.risenshineclean.com/news/49577.html

相關(guān)文章:

  • 北京網(wǎng)站建設(shè)q479185700棒寧波seo外包服務(wù)商
  • 徐州英文網(wǎng)站優(yōu)化google海外版入口
  • 網(wǎng)站建設(shè)使用的技術(shù)搜索歷史記錄
  • WordPress批量定時(shí)發(fā)布文章seo美式
  • 游戲網(wǎng)站建設(shè)方案書百度seo關(guān)鍵詞點(diǎn)擊軟件
  • 做石材外貿(mào)用什么網(wǎng)站宣傳推廣圖片
  • 如何做網(wǎng)站頁面免費(fèi)的人民日報(bào)官網(wǎng)
  • 網(wǎng)絡(luò)銷售網(wǎng)站網(wǎng)站推廣引流最快方法
  • 德陽北京網(wǎng)站建設(shè)計(jì)算機(jī)培訓(xùn)短期速成班
  • 克隆視廳網(wǎng)站怎么做佛山seo整站優(yōu)化
  • 網(wǎng)站開發(fā)成本評估百度網(wǎng)站收錄入口
  • 做網(wǎng)站是哪個(gè)專業(yè)互聯(lián)網(wǎng)項(xiàng)目推廣是什么
  • 大良網(wǎng)站建設(shè)市場上海最專業(yè)的seo公司
  • 像淘寶類別網(wǎng)站怎么做seo網(wǎng)站關(guān)鍵詞優(yōu)化排名
  • 搜索引擎seo是什么意思seo外包優(yōu)化網(wǎng)站
  • 要求維護(hù)公司做網(wǎng)站整改的函百度信息流
  • 延吉網(wǎng)站建設(shè)移動(dòng)端排名優(yōu)化軟件
  • 用什么工具做網(wǎng)站百度站長
  • 自己做的手工放在哪個(gè)網(wǎng)站賣站長工具seo綜合查詢騰訊
  • 網(wǎng)站建設(shè)是哪個(gè)專業(yè)最新新聞熱點(diǎn)事件2022
  • 做外貿(mào)用哪個(gè)網(wǎng)站好數(shù)據(jù)分析工具
  • 東營兩學(xué)一做測試網(wǎng)站360建站官網(wǎng)
  • 自己做網(wǎng)站app騰訊疫情實(shí)時(shí)數(shù)據(jù)
  • 切圖做網(wǎng)站過時(shí)了嗎seo手機(jī)關(guān)鍵詞網(wǎng)址
  • 知名網(wǎng)站排行榜北京百度搜索優(yōu)化
  • 上海市住房與城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站國際外貿(mào)網(wǎng)絡(luò)交易平臺(tái)
  • 企業(yè)做自己的網(wǎng)站要注意什么seo分析
  • 從哪里設(shè)置網(wǎng)站關(guān)鍵詞建站公司網(wǎng)站源碼
  • 石家莊學(xué)校網(wǎng)站建設(shè)關(guān)鍵路徑
  • 建筑企業(yè)網(wǎng)站模板站內(nèi)優(yōu)化包括哪些