MDI程序,连续打开两个文件分别在不同的窗口显示

yskshift 2015-01-28 03:58:15
我程序的思路是这样的,启动MDI程序,自动创建了一个窗口
在View类中有一个OnFileOpen()函数,打开文件,处理显示在这个窗口中(列表)
显示完后 用sendmessage的方法发送ID_FILE_NEW命令创建另一个窗口,请问怎么获取另一个窗口View类指针,以便后续的处理显示。 谢谢! 不懂我描述清楚没,欢迎提问!
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨笨仔 2015-01-28
  • 打赏
  • 举报
回复
程序初始化时保存窗口指针,或按层次关系直接获取。 关于获得MFC窗口其它类指针的方法 关于获得MFC窗口其它类指针的方法(CSDN) 访问应用程序的其它类 获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFrame() -在其它类中用AfxGetMainWnd() 获得CChildFrame: -在CView中用GetParentFrame() -在CMainFrame中用MDIGetActive()或GetActiveFrame() -在其它类中用AfxGetMainWnd()->MDIGetActive()或AfxGetMainWnd()->GetActiveFrame() 获得CDocument: -在CView中用GetDocument() -在CChildFrame中用GetActiveView()->GetDocument() -在CMainFrame中用 -if SDI:GetActiveView()->GetDocument() -if MDI:MDIGetActive()->GetActiveView()->GetDocument() -在其它类中 -if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() 获得CView: -在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos) -在CChildFrame中 GetActiveView() -在CMainFrame中 -if SDI:GetActiveView() -if MDI:MDIGetActive()->GetActiveView() -在其它类中 -if SDI:AfxGetMainWnd()->GetActiveView() -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() 不过要注意在doc中要取得view的指针C*View要注意类C*View声明的问题, 因为默认情况下,mfc在*View.h中已经包含了*Doc.h,如果在*Doc.h中包含 *View.h,就会引起嵌套包含问题,这样要在*Doc.h中加入 class C*View; 而在*Doc.cpp中加入 #include "*View.h"
Eleven 2015-01-28
  • 打赏
  • 举报
回复
遍历视图窗口~
lx624909677 2015-01-28
  • 打赏
  • 举报
回复
是单文档多视图的工程吗?是的话看下这里:http://blog.csdn.net/xianglifighter/article/details/28851443

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧