欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

MFC单文档框架编程(二): SDI框架下的消息处理

发布时间:2025/3/21 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MFC单文档框架编程(二): SDI框架下的消息处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
MFC单文档框架编程(一) .......................................................................................................................1. 菜单栏与工具栏具有相同ID,则两个控件执行同样的动作如菜单项(打开)与工具栏按钮(打开)具有相同的ID (ID_FILE_OPEN),则二者都可实现"打开"的动作,而实现代码只需要在一个控件中实现。2. 在XXXDoc.h(框架自动生成的Doc)中为类添加数据成员,则该成员可为所有使用该Doc的所有View访问(如程序中的所有View)如添加变量:int m_devNumber;3. 添加菜单项事件处理程序void CMainFrame::OnFileOpen(){// TODO: 在此添加命令处理程序代码CBrdManageDoc* pDoc=(CBrdManageDoc*)GetActiveDocument();// 获取文档 (CBrdManageDoc为工程Doc名字)int * pDevNum = &(pDoc->m_devNumber);        //Doc类的成员变量int Status = realFunction(pDevNum);                    //程序的核心功能函数 对 Doc的成员变量赋值if (Status == NP_SUCCESS){pDoc->UpdateAllViews(NULL);               //更新所有视图UpdateData(FALSE);                                 //各控件的内容清空}}4. 在其他view中处理Doc类的数据如重载CBrdListView的OnUpdate函数:void CBrdListView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/){// TODO: 在此添加专用代码和/或调用基类CBrdManageDoc* pDoc=(CBrdManageDoc*)GetDocument(); //获取文档指针if(pDoc->m_devNumber > 0) //添加了数据{.......}}5.从上面的过程可以看到,框架下的各种View通过共享一Document,而实现数据共享(消息传递)。

总结

以上是生活随笔为你收集整理的MFC单文档框架编程(二): SDI框架下的消息处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。