设置工程初时时候无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() ; ================================== |
|