Ⅰ mfc多文档多视图问题
MFC多文档框架MDI已经做好了多视图打开的基础逻辑。
你只需要在双击(具体哪里你没描述,假设是一个列表什么的)响应中:
AfxGetApp()->OpenDocumentFile(strFileName);
即可触发打开文件操作,并新建一个视图窗口。
在文档类中,重载OnOpenDocument函数(通过ClassWizard),并在这里加入打开文件的处理即可。
最后就是显示了,根据文档类中的图片数据,在OnDraw中显示。
Ⅱ MFC 多文档程序(MDI - Doument\view) 编程实例或者教程
孙鑫的VC++深入详解,这本书基本都是讲文档操作的。
Ⅲ visual studio MFC编程中,创建了一个多文档应用程序,如何给左侧的文档视图节点添加双击和右击事件呢
根据你的描述,不知道你现在的具体情况。
但是应该有如下方法:你说的文档视图是个DockPane,你新建一个多文档工程,你可以看到对应的"文档视图"类,它里面有创建其子窗口的代码,大概会有个CViewTree的类,派生自CTreeCtrl
所以,你可以为这个类添加事件:双击和右键单击的。
而右键菜单,可以添加OnContextMenu,在里面弹出右键菜单即可,具体菜单消息处理,就看你自己的了,为菜单项添加事件处理程序。
Ⅳ 关于c++编程。。。。。多文档视图。。。。。。
void CMy3View::OnDraw(CDC* /*pDC*/)
改成
void CMy3View::OnDraw(CDC* pDC)
Ⅳ 多文档编程vc,我想在CMainFrame上画 主界面,初始化只显示主界面,不打开任何视图,不知怎么实现
在App类的InitInstance()函数里面找到
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
然后加上下面一句代码就可以了
cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; //不创建新文档
Ⅵ vc++多文档视图怎么重写bool cdocument:savemodified
MFC引入了"文档/视图"结构的概念,理解这个结构是编写基于MFC编写复杂Visual C++程序的关键。"文档/视图"中主要涉及到四种类:
(1)文档模板:
class CDocTemplate; // template for document creation
class CSingleDocTemplate; // SDI support
class CMultiDocTemplate; // MDI support
(2)文档:
class CDocument; // main document abstraction
(3)视图:
// views on a document
class CView; // a view on a document
class CScrollView; // a scrolling view
(4)框架窗口:
// frame windows
class CFrameWnd; // standard SDI frame
class CMDIFrameWnd; // standard MDI frame
class CMDIChildWnd; // standard MDI child
class CMiniFrameWnd; // half-height caption frame wnd
理解了这4个类各自的意义及它们纵横交错的关系也就理解了"文档/视图"结构的基本概念,在此基础上,我们还需要进一步研究"文档/视图"结构的MFC程序消息流动的方向,这样就完全彻底明白了基于"文档/视图"结构MFC程序的"生死因果"。
出于以上考虑,本文这样组织了各次连载的内容:
第1次连载进行基本概念的介绍,第2~5次连载分别讲述文档模板、文档、视图和框架窗口四个类的功能和主要函数,连载6则综合阐述四个类之间的关系,接着以连载7讲解消息流动的方向,最后的连载8则以实例剖析连载1~7所讲述的所有内容。
Ⅶ 多文档程序,如何切换视图
CDocument* pDoc = GetDocument();
CDocTemplate* pTemplate = pDoc->GetDocTemplate();
CDocument* pNewDoc = pTemplate->OpenDocumentFile(NULL);
//然后就可以更新文档pNewDoc的数据,比如把图片数据写到文档里,
//然后更新视图,视图按照文档绘图
pNewDoc->UpdateAllViews(NULL);
Ⅷ 如何在MFC单文档中创建多视图
基本步骤如下:
1.首先创建一个MFC单文档应用程序。
2.添加4个MFC类TopLView、BottomLView、TopRView、BottomRView,基类为CView。
3.添加一个MFC类CControlForm,基类为CFormView,对话框ID默认。
4.创建一个切分类,如MySplitter,基类为CSplitterWnd(默认基类选项中无此类,自己添加即可)。
5.在框架类Cmainframe的头文件中,添加2个MySplitter的变量(因为下面要进行两次切分操作)。
6.重写框架类Cmainframe的OnCreateClient函数,如下:
//第一次静态切分CreateStatic,一行两列
if (!m_wndSplitter.CreateStatic(this,1,2))
return FALSE;
//第二次静态切分(将第一次切分后的第二列再分为2*2)及所有的子视图创建(CreateView函数)。