MFC单文档框架编程(二): SDI框架下的消息处理
生活随笔
收集整理的這篇文章主要介紹了
MFC单文档框架编程(二): SDI框架下的消息处理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MFC單文檔框架編程(一)
.......................................................................................................................1. 菜單欄與工具欄具有相同ID,則兩個(gè)控件執(zhí)行同樣的動(dòng)作如菜單項(xiàng)(打開)與工具欄按鈕(打開)具有相同的ID (ID_FILE_OPEN),則二者都可實(shí)現(xiàn)"打開"的動(dòng)作,而實(shí)現(xiàn)代碼只需要在一個(gè)控件中實(shí)現(xiàn)。2. 在XXXDoc.h(框架自動(dòng)生成的Doc)中為類添加數(shù)據(jù)成員,則該成員可為所有使用該Doc的所有View訪問(如程序中的所有View)如添加變量:int m_devNumber;3. 添加菜單項(xiàng)事件處理程序void CMainFrame::OnFileOpen(){// TODO: 在此添加命令處理程序代碼CBrdManageDoc* pDoc=(CBrdManageDoc*)GetActiveDocument();// 獲取文檔 (CBrdManageDoc為工程Doc名字)int * pDevNum = &(pDoc->m_devNumber);????? ? //Doc類的成員變量int Status = realFunction(pDevNum);????????????????? ? //程序的核心功能函數(shù) 對(duì) Doc的成員變量賦值if (Status == NP_SUCCESS){pDoc->UpdateAllViews(NULL); ????????? ? ??//更新所有視圖UpdateData(FALSE); ????????????????????????????????//各控件的內(nèi)容清空}}4. 在其他view中處理Doc類的數(shù)據(jù)如重載CBrdListView的OnUpdate函數(shù):void CBrdListView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/){// TODO: 在此添加專用代碼和/或調(diào)用基類CBrdManageDoc* pDoc=(CBrdManageDoc*)GetDocument(); //獲取文檔指針if(pDoc->m_devNumber > 0) //添加了數(shù)據(jù){.......}}5.從上面的過程可以看到,框架下的各種View通過共享一Document,而實(shí)現(xiàn)數(shù)據(jù)共享(消息傳遞)。
總結(jié)
以上是生活随笔為你收集整理的MFC单文档框架编程(二): SDI框架下的消息处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC单文档框架编程(一): 分隔窗口的
- 下一篇: MFC单文档框架编程(三): CTabV