满汉全席名字的来由:紧急求救,请高手指点。多文档多视图中遇到的问题,关于打开文件的简单问题-mfc教程-VC/...

来源:百度文库 编辑:中财网 时间:2024/05/05 15:41:49
设置工程初时时候无cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;

而后想在打开文件的时候指定类型,不知道该怎么做。

1、我现在重载了BOOL CBaseEyeDoc::OnOpenDocument(LPCTSTR lpszPathName)
但是发现这么用,无法指定文件类型。

2、另外,我试着在框架类中classwizard了ID_FILE_OPEN,就有了BOOL CMainFrame::OnfileOpen(LPCTSTR lpszPathName)
但是我打开的是图象文件,希望大开后能显示,用框架类打开,不知道怎么通知视图显示。
如果是文档类,我用UpdateAllViews(NULL);就可以了,

请高手指点。

答!: 1:我来回答一下第二个问题:
1 在CMainFrame中这样得到View的指针:GetActiveView()得到视图的指针,然后进行你的操作
2 可以向View发消息,得到View的指针是前提(如上所说)

方法挺多的 看楼主爱好了 呵呵答!: 2:通知视图类画图是哪个函数,是ValidateRect吗?答!: 3:GetActiveView()得到的指针是空的答!: 4:在CMainFrame中OnfileOpen下,得到的视图和文档指针都是空的,为什么答!: 5:在单文档中, 结构是:
CMainFrame -> CView
所以 ,可以用 CMainFrame::GetActiveView() 获得 活动视图

在多文档中, 结构是:
CMainFrame -> 多个CMDIChildWnd -> CView
就不能直接用 CMainFrame::GetActiveView() 的到 CView 了 。

多文档中 要分两步:
步骤1、 通过 CMainFrame::MDIGetActive() 得到 CMDIChildWnd* ,
步骤2、 在CMDIChildWnd* 中进行 CMDIChildWnd::GetActiveView() 来得到 CView*


例如:===========================
CMDIChildWnd* pMDIActive = MDIGetActive() ;
CView* pView = pMDIActive->GetActiveView() ;
==================================