MFC,怎么实现,单文档,多视图? [问题点数:50分]

Bbs1
本版专家分:0
结帖率 60%
Bbs10
本版专家分:172501
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年8月 VC/MFC大版内专家分月排行榜第二
2019年7月 VC/MFC大版内专家分月排行榜第二
2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs5
本版专家分:2255
Bbs1
本版专家分:0
Bbs10
本版专家分:172501
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年8月 VC/MFC大版内专家分月排行榜第二
2019年7月 VC/MFC大版内专家分月排行榜第二
2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs10
本版专家分:172501
Blank
红花 2018年7月 VC/MFC大版内专家分月排行榜第一
2017年10月 VC/MFC大版内专家分月排行榜第一
2016年3月 VC/MFC大版内专家分月排行榜第一
2014年10月 VC/MFC大版内专家分月排行榜第一
2014年9月 VC/MFC大版内专家分月排行榜第一
2014年7月 VC/MFC大版内专家分月排行榜第一
2014年6月 VC/MFC大版内专家分月排行榜第一
2014年5月 VC/MFC大版内专家分月排行榜第一
2014年4月 VC/MFC大版内专家分月排行榜第一
2014年2月 VC/MFC大版内专家分月排行榜第一
2013年7月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2019年8月 VC/MFC大版内专家分月排行榜第二
2019年7月 VC/MFC大版内专家分月排行榜第二
2019年6月 VC/MFC大版内专家分月排行榜第二
2019年5月 VC/MFC大版内专家分月排行榜第二
2019年4月 VC/MFC大版内专家分月排行榜第二
2019年3月 VC/MFC大版内专家分月排行榜第二
2018年10月 VC/MFC大版内专家分月排行榜第二
2018年9月 VC/MFC大版内专家分月排行榜第二
2018年8月 VC/MFC大版内专家分月排行榜第二
2018年5月 VC/MFC大版内专家分月排行榜第二
2017年12月 VC/MFC大版内专家分月排行榜第二
2017年6月 VC/MFC大版内专家分月排行榜第二
2017年5月 VC/MFC大版内专家分月排行榜第二
2017年1月 VC/MFC大版内专家分月排行榜第二
2016年11月 VC/MFC大版内专家分月排行榜第二
2016年4月 VC/MFC大版内专家分月排行榜第二
2014年11月 VC/MFC大版内专家分月排行榜第二
2014年1月 VC/MFC大版内专家分月排行榜第二
2013年10月 VC/MFC大版内专家分月排行榜第二
2013年9月 VC/MFC大版内专家分月排行榜第二
2013年6月 VC/MFC大版内专家分月排行榜第二
2013年4月 VC/MFC大版内专家分月排行榜第二
2012年6月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2018年11月 VC/MFC大版内专家分月排行榜第三
2018年6月 VC/MFC大版内专家分月排行榜第三
2018年4月 VC/MFC大版内专家分月排行榜第三
2018年3月 VC/MFC大版内专家分月排行榜第三
2018年2月 VC/MFC大版内专家分月排行榜第三
2018年1月 VC/MFC大版内专家分月排行榜第三
2017年11月 VC/MFC大版内专家分月排行榜第三
2017年9月 VC/MFC大版内专家分月排行榜第三
2017年8月 VC/MFC大版内专家分月排行榜第三
2017年4月 VC/MFC大版内专家分月排行榜第三
2016年12月 VC/MFC大版内专家分月排行榜第三
2016年10月 VC/MFC大版内专家分月排行榜第三
2016年2月 VC/MFC大版内专家分月排行榜第三
2015年10月 VC/MFC大版内专家分月排行榜第三
2015年7月 VC/MFC大版内专家分月排行榜第三
2012年10月 VC/MFC大版内专家分月排行榜第三
MFC单文档多视图下的拆分
现在写的<em>单文档</em>程序中我新建了一个视图,能够<em>实现</em>两个视图间切换,但是为了满足应用要求需要将两个视图进行拆分,我已经在MainFrame下将第一个视图拆分了,现在还有几个问题,想问一各位老师:rn1、如何拆分我新建的视图,我一直没能<em>实现</em>这个功能;rn我拆分的第一个视图[img=https://img-bbs.csdn.net/upload/201701/08/1483865529_935589.png][/img]rn新建的CView类的视图一直不能拆分[img=https://img-bbs.csdn.net/upload/201701/08/1483865639_446131.png][/img]rn请问第二个视图应该<em>怎么</em>拆分rn2、怎样在点开不同设备时能够在前边有个对号来表示进入了不同的视图;rn3、现在我只是新建了一个视图,为什么当我想进入第二个新建的视图时,需要点击两次才能进入;rnrn主要是第一个问题,望各位老师帮忙解答一下,谢谢,最近连着考试没法及时回复帖子,抱歉
mfc资源 单文档 多视图
从网上一个bolg上看的。自己写的,能运行~~多多指教
MFC单文档多视图
VC MFC<em>单文档</em>和多文档中的<em>多视图</em>技术,首先对窗口进行拆分,然后插入多个视图。运行过程中通过点击树状列表动态切换视图。非常有用。
MFC下的单文档多视图分割
基于VC6.0编写的一个MFC框架下的<em>单文档</em><em>多视图</em>分割的应用程序,练习了视图分割的相关技术。
单文档多视图MFC 定时器
<em>单文档</em><em>多视图</em>MFC,我在CMainFrame类里写了视图切换的响应函数OnIMG1 OnIMG2 OnIMG3 我想在OnIMG1中再调用view1的函数(改函数中有SetTimer)rnvoid CMainFrame::OnImg1()rnrn ……rn CView1 *pView=(CView1 *)GetActiveView(); rn pView->TimerBegin();rn……rnrnrnvoid CView1 ::TimerBegin()rnrn if (!SetTimer(1,1000,NULL)) //创建1s的定时器rn rn AfxMessageBox("创建定时器失败");rn rnrnrnrnrnrn//WM_TIMER消息rnvoid CView1 ::OnTimer(UINT nIDEvent) rnrn // TODO: Add your message handler code here and/or call defaultrn CXXXDoc* pDoc = GetDocument();rn pDoc->a+=1; //a为int 初始化为0rn Invalidate();rn CView::OnTimer(nIDEvent);rnrnrnrnvoid CView1::OnDraw(CDC* pDC)rnrn……rnchar p[10];rnsprintf(p,"%-06.3f",pDoc->a);//压力的数据格式、单位是否确定rnpDC->TextOut(100,300,p);rnrn请问 <em>怎么</em>没反应啊
mfc单文档多视图
一个简便的<em>mfc</em><em>单文档</em><em>多视图</em>demo,共享给大家
单文档多视图如何实现
想象CAJViewer那样的用四个按纽“前进,后退,到最后一页,到起始页”来<em>实现</em>,谢谢
VS2010 MFC 单文档多视图切换
各位大神,我现在已经<em>实现</em>了同种视图类型的切换 但是要<em>实现</em>不同种视图类型的切换要<em>怎么</em><em>实现</em>呢?rn rn以下是我初始化 创建视图的代码rnvoid CMainFrame::InitView()rnrn m_nCurView = 0; // Save index of the currently active view class rn CView* pActiveView = (CView*)GetActiveView(); rnrn m_pViews[0] = pActiveView;//这里MFC让默认的模板作为第一个视图数组成员 rn m_pViews[1] = (CTabView*) new COtherView;rn m_pViews[2] = (CView*) new Cthirdview;rnrn CDocument* pCurrentDoc = GetActiveDocument(); rnrn // Initialize a CCreateContext to point to the active document. rn // With this context, the new view is added to the document rn // when the view is created in CView::OnCreate(). rn CCreateContext newContext; rn newContext.m_pNewViewClass = NULL; rn newContext.m_pNewDocTemplate = NULL; rn newContext.m_pLastView = NULL; rn newContext.m_pCurrentFrame = NULL; rn newContext.m_pCurrentDoc = pCurrentDoc; rnrn CRect rect(0, 0, 0, 0); // gets resized later rnrn for (int nView = 1; nView < 3; nView++) rn rn // Create the new view. In this example, the view persists for rn // the life of the application. The application automatically rn // deletes the view when the application is closed. rn m_pViews[nView]->Create(NULL, NULL, rn (AFX_WS_DEFAULT_VIEW & ~WS_VISIBLE), rn // views are created with the style of AFX_WS_DEFAULT_VIEW rn // In MFC 4.0, this is (WS_BORDER | WS_VISIBLE | WS_CHILD) rn rect, this, rn IDD_FORMVIEW1-1 + nView, &newContext);//这里面的ID是连续定义的(在resource.h中),便于循环处理。 rnrn // When a document template creates a view, the WM_INITIALUPDATE rn // message is sent automatically. However, this code must rn // explicitly send the message, as follows. rnrnrn m_pViews [nView]->OnInitialUpdate();//这里要注意,如果是CFormView类型的视图,要注掉。 rn rnrnrn我一共有三个视图,第一个和第二视图为普通CView类,第二个视图为CTabView类,但这样不能<em>实现</em>切换,但是如果三个都是CView类的话,我是可以<em>实现</em>切换的。rn各位大神请赐教,拜托了rn
如何实现单文档多视图?
-
单文档多视图实现
在菜单中响应消息,将当前VIEW切换为另一个视图FORMVIEW,点击另一菜单在切换为另一VIEW2,视图为以编好的。最好有原程序,li_hai_quan@163.com拜托各位老大。
单文档多视图实现的疑问
我在做是实验的时候遇到一个<em>单文档</em><em>多视图</em>的情况,于是在网上找资料,找到一个实例,但好明显有一些错误,希望高手指教,不胜感激。rn 此sdi程序主要是利用菜单来切换不同的视图,3个视图的基类都是CFromView。rn主要代码如下:rnBEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)rn ON_WM_CREATE()rn ON_COMMAND_RANGE(ID_VIEW1, ID_VIEW3, onchange) //ID_VIEW为菜单的IDrn ON_UPDATE_COMMAND_UI_RANGE( ID_VIEW1, ID_VIEW3, onupdatechangeUI )rnrnrnrn ON_COMMAND(ID_VIEW1, &CMainFrame::OnView1)rn ON_COMMAND(ID_VIEW2, &CMainFrame::OnView2)rnEND_MESSAGE_MAP()rnrnrnrnvoid CMainFrame::onchange(UINT nID)rnrn if(nID==m_pcurrentview)rn return;rn CView* pOldActiveView=GetActiveView();rn ::SetWindowLong (pOldActiveView->m_hWnd,GWL_ID,m_pcurrentview);rn rn CRuntimeClass* pNewViewClass;rnrn switch(nID)rn rn case ID_VIEW1:rn pNewViewClass=RUNTIME_CLASS(CView1);rn break;rn case ID_VIEW2:rn pNewViewClass=RUNTIME_CLASS(CView2);rn break;rn case ID_VIEW3:rn pNewViewClass=RUNTIME_CLASS(CView3);rn break;rn default:rn ASSERT(0);rn return;rn rnrn CCreateContext context;rn context.m_pNewViewClass=pNewViewClass;rn context.m_pCurrentDoc=GetActiveDocument();rn CView* pNewView=STATIC_DOWNCAST(CView,CreateView(&context));rnrn if(pNewView!=NULL)rn rn pNewView->ShowWindow (SW_SHOW);rn pNewView->OnInitialUpdate();rn SetActiveView(pNewView);rn RecalcLayout();rn m_pcurrentview=nID;rn pOldActiveView->DestroyWindow();rn ardfa.m_hActiveView=GetActiveView()->m_hWnd; //ardfa不知道是什么rn rnrnrnvoid CMainFrame::onupdatechangeUI(CCmdUI* pCmdUI)rnrn pCmdUI->SetCheck(pCmdUI->m_nID=m_pcurrentview);rnrnrnrn此处的ardfa不知道是什么,之前未定义的。实例中也没有提及,我估计应该是一个自定义的类对象。请问各位高手,应该怎样定义ardfa才能使程序正常运行呢?还有,我要在菜单的消息处理中怎样调用onchange和onupdatechange函数才能转换视图呢?本人菜鸟,不胜感激!
MFC MDI怎么实现多视图
[img=http://hi.csdn.net/attachment/201110/13/7196428_1318483325Q999.jpg][/img]rn我想选择某个功能后在主窗口打开一个试图窗口,再选择一个功能就再打开一个,然后每个窗口上都有个小叉号可以关闭,不同的选项卡切换时显示不同的界面,效果如上图。我的工程师MDI的,<em>怎么</em>才能<em>实现</em>上面的效果呢?现在没思路,迷茫中。。。
单文档多视图
我用addview和removeview进行<em>多视图</em>的切换,却发现oninitialupdate中的代码并不会执行,这使得该视图上所有的控件无法利用程序进行初始化,即只能在设计时进行控件的设置,我想把这些初始化代码放到视图可见前会执行的事件处理程序中,但不知道哪个事件符合我的要求。rn创建该视图的代码为rn m_pView2->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,rn rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL);rn具体的代码可参考MSDN的CDocument::AddView。
求助:怎么实现单文档多视图的显示
打算做一个很简单的<em>单文档</em>程序,窗口分割为两行两列,分别<em>实现</em>加减乘除运算,于是新生成了四个类,但是窗口分割之后,创建视图却遇到了问题,下面是源代码:rn//静态分割窗口rnCRect rc;rnGetClientRect(&rc); // 获取框架窗口客户区的CRect对象 rn// 创建静态分割窗口,两行一列 rnif (!m_wndSplitter.CreateStatic(this, 2, 2,WS_CHILD|WS_VISIBLE)) rnreturn FALSE; rnif (!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CAdditionView),CSize(rc.Width()/2,rc.Height()/2),pContext))rnreturn FALSE;rnif (!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CSubtraction),CSize(rc.Width()/2,rc.Height()/2),pContext))rnreturn FALSE;rnif (!m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CMultipline),CSize(rc.Width()/2,rc.Height()/2),pContext))rnreturn FALSE;rnif (!m_wndSplitter.CreateView(1,1,RUNTIME_CLASS(CDivisin),CSize(rc.Width()/2,rc.Height()/2),pContext))rnreturn FALSE;rnpAddition=(CAdditionView*)m_wndSplitter.GetPane(0,0);rnpSubtraction=(CSubtraction*)m_wndSplitter.GetPane(0,1);rnpMultipline=(CMultipline*)m_wndSplitter.GetPane(1,0);rnpDivision=(CDivisin*)m_wndSplitter.GetPane(1,1);rn运行后程序可以成功生成,但是执行的时候会出现这样的问题:rnrn![图片说明](https://img-ask.csdn.net/upload/201610/21/1477052451_466797.png)rnrn调试发现问题出现在这里:rn#ifdef _DEBUGrn// dialog template must exist and be invisible with WS_CHILD setrnif (!_AfxCheckDialogTemplate(m_lpszTemplateName, TRUE))rnrnASSERT(FALSE); // invalid dialog template namernPostNcDestroy(); // cleanup if Create fails too soonrnreturn FALSE;rnrn#endif //_DEBUGrn卡在了ASSERT(FALSE); // invalid dialog template name这句,调用堆栈信息显示如下:rnrn![图片说明](https://img-ask.csdn.net/upload/201610/21/1477052476_140939.png)rn![图片说明](https://img-ask.csdn.net/upload/201610/21/1477052495_810704.png)rnrn但是我显示<em>单文档</em>本身生成的view类时却会正常执行,根本不会执行这一句,不明白是哪里出了问题,在网上找了很多,但是一头雾水,也许是视图类没生成完全,不知道<em>怎么</em>把视图类和文档关联起来,求助各位大神!!
VC项目开发之单文档多视图实现
<em>多视图</em>是VC开发中经常要用到的技术之一,一般地<em>实现</em><em>单文档</em><em>多视图</em>有两种方式1)通过视图分割的技术(使用CSplitterWnd<em>实现</em>),将窗口分割为多个部分,每个部分显示各自显示不同的视图,这种技术<em>实现</em>起来比较简单,并且相关的资料也很多。2)通过一个文档关联多个视图,窗口显示整个视图。第二种<em>实现</em>较第一种复杂,这里给出详细的<em>实现</em>方法。
请问如何实现单文档多视图
我想编一段程序用多个视图来表现一个文档的多个部分,查阅了许多书rn都无法得到解答,望高手指点.rnrn-----------------------------------|rn | |rn | |rn | |rn-----------------------------------|rn | |rn | |rn | |rn-----------------------------------|
如何实现单文档多视图的功能
我做了个<em>单文档</em>的程序想通过菜单控制不同的视图就是在CFRAMEWND下切换不同的视图,在rnCMDI下我会做,加入不同的视图,可在SDI下却显示不出来,很急请高手告知
[求助]MDI实现单文档多视图
我想做一个程序,描述如下:rn一个MDI程序,但是可以一个view显示数据,一个view显示图表.如何<em>实现</em>?rn不知道有没有这样的源程序.请发到taboy@bit.edu.cnrn谢谢
用VC7.0实现单文档多视图
用VC7.0<em>实现</em><em>单文档</em><em>多视图</em>rnrn视图类包括:rnrnCmathView(类向导自动生成)rnCView2(基于对话框而生成的类)rnCView3(基于对话框而生成的类)rn......rnrnrn所有的视图类从CFormView类共有派生。rnrnrnBOOL CmathApp::InitInstance()rnrn rn CSingleDocTemplate* pNewDocTemplate = new CSingleDocTemplate(rn IDR_ZYWTVIEW_TMPL,rn RUNTIME_CLASS(CmathDoc),rn RUNTIME_CLASS(CMainFrame),rn RUNTIME_CLASS(CmathView));rn AddDocTemplate(pNewDocTemplate);rn rnrn在vc6.0中rnrnRUNTIME_CLASS(CmathView));//修改视图类CmathView,可以加载其他视图rnrn但是,在vc7.0中为什么总是中断?rn
MFC单文档多视图下更改鼠标形状
又被一个小项目缠身,说是要在MFC<em>单文档</em><em>多视图</em>架构下,能够<em>实现</em>点击工具栏不同按钮<em>实现</em>鼠标样式的改变,本来以为轻松一句代码SetClassLong 可以<em>实现</em>,但是效果不佳,只能弃用。笔者能力薄弱,尝试很多方法,花了半周时间终于搞定,特将自己的经验拿出来供大家借鉴,不足之处还望大家指点赐教。   根据万能的度娘和网上的大牛的指点,我们发现有4种方法可以<em>实现</em>:   1: 修改方法一 重载CView里
MFC单文档多视图之间穿数据 笔记
就是利用工程中的doc文件 1.给doc文件增加新变量, 2.在需要给该变量赋值的视图类中利用 XXXDoc* pDoc = (XXXDoc*)GetDocument();来获得Doc类的指针 3.用pDoc->新增的变量=变量值       给要传输的数据赋值 4.再需要接受该变量的视图类中利用XXXDoc* pDoc = (XXXDoc*)GetDocument();来获得Doc
求助!MFC单文档多视图的各视图的问题
如果我只用系统最初建好的文档类来储存数据,而各视图显示的是数据的不同部分,n1、首先这样是否能<em>实现</em>?还是说必须每个视图要建一个文档?n2、如果可以。那么我<em>怎么</em>获得其中某个视图的指针?(比如我这里用到的有CTreeView,CRichEditView,并且CRichView的视图块有两个,需要让他们独立显示,而不是共同显示一个数据)nn目前只是把视图单纯地分割了,代码如下nn```n BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)nn // TODO: 在此添加专用代码和/或调用基类n if (!m_wndSplitter.CreateStatic(this, 1, 2))n n return FALSE;n n CRect rect;n GetClientRect(&rect);n n m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(TreeView), CSize(rect.Width() / 3 - 170, rect.Height()), pContext);nn if (!m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 1))n || !m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(RichEditView), CSize(rect.Width() / 3 - 50, rect.Height()), pContext)n || !m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(RichEditView), CSize(rect.Width() / 3, rect.Height()), pContext))n n return FALSE;n n return TRUE;n //return CFrameWnd::OnCreateClient(lpcs, pContext);nn```nn
MFC的单文档多视图分割的关键代码
基于MFC的<em>单文档</em><em>多视图</em>分割<em>实现</em>的关键代码
MFC单文档中创建多视图问题求助
我按照下边网站博客上的步骤操作总出现错误rnhttp://blog.csdn.net/xxjzzit/article/details/9325465rn错误是出现在运行阶段,我不知道是不是还需要额外的做些设置,请大神们看看这个错误:rn[img=https://img-bbs.csdn.net/upload/201312/27/1388134399_970932.jpg][/img]
关于MFC单文档多视图的静态创建法
在InitInstance中初始化它,还包括视图的创建。 下面代码据说能行, 在我这里执行还是有错误。 还需要做什么附加工作吗? 下面创建多视窗代码有什么问题?rnrn我是想MDI启动时有多个视窗。单个文档类。 如何<em>实现</em>?rnrnrn[code=c] // 注册应用程序的文档模板。文档模板rn // 将用作文档、框架窗口和视图之间的连接rn CMultiDocTemplate* pDocTemplate;rn pDocTemplate = new CMultiDocTemplate(IDR_TransponderTYPE,rn RUNTIME_CLASS(CTransponderDoc),rn RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架rn RUNTIME_CLASS(CTransponderView));rn if (!pDocTemplate)rn return FALSE;rn AddDocTemplate(pDocTemplate);rnrn CView* m_pActiveView = ((CFrameWnd*)m_pMainWnd)->GetActiveView();rn m_pView = m_pActiveView; //由于一开始显示的就是m_pView[0]所以直接赋给它 rn m_pView2 = new CTransponder2View;rn //初始化上下文,主要是文档指针,并创建其余视图rn CCreateContext context;rn context.m_pCurrentDoc = ((CFrameWnd*)m_pMainWnd)->GetActiveDocument();rn m_pView2->Create(NULL,NULL,(AFX_WS_DEFAULT_VIEW & ~WS_VISIBLE),CFrameWnd::rectDefault,m_pMainWnd,AFX_IDW_PANE_FIRST+1,&context);rn //需要我们人工调用更新函数rn m_pView->OnInitialUpdate();rn m_pView2->OnInitialUpdate();[/code]
MFC MDI 单文档多视图的保存问题
rn 我利用MDI创建多个视图 并使这些视图链接到同一个文档上rn rn但是在进行保存操作时 却无法使用CDocument: Filesave()rn 调用一直出错 请问下高手 这是什么问题啊rn 困扰好久了 刚做一个小项目的界面 错误好多 rn 一直在排除 好苦恼 rn 希望能得到 比较清晰的说明或思路
vc++单文档多视图例子
vc++<em>单文档</em><em>多视图</em>例子,同一个视图分为多个视图,利用相关类,是初学者很好的范例
单文档按钮的多视图切换
<em>单文档</em>建的formview,按钮可以切换到不同界面
单文档拆分与多视图通信
一个视图拆分和多文档通信的小程序,希望对大家有用
单文档多视图的问题
我现在要完成这样的需求,就是界面<em>实现</em>风格统一,需要切换来切换去的,我有多个Dialog资源,就是需要切换的内容.rnGoogle了一番,大约知道CFormView可以使用Dialog资源.rn我现在的问题就是:rn1. 不知道<em>怎么</em>把CFormView放到我的CMainFrame : public CFrameWndEx里面去.rn2. <em>怎么</em>切换多个FormView.rnrnPS:rn我不需要做的很复杂,就是发生某个事件,把CMainFrame里面的FormView换成另外一个FormView.rnrn谢谢帮忙
SDI(multiview)单文档多视图
AppWizard has created this MultiView application for you. This application not only demonstrates the basics of using the Microsoft Foundation classes but is also a starting point for writing your application.
单文档多视图序列化保存
我<em>单文档</em>有左右两个视图,都是树视图类,分别重写了序列化函数如下: rnrnif (ar.IsStoring()) rn // storing code rnHTREEITEM hti=m_pTree->GetRootItem(); rnwhile (hti) rn rnint indent=GetIndentLevel(hti); rnwhile(indent--) rnar.WriteString("\t"); rnar.WriteString(m_pTree->GetItemText(hti)+"\r\n"); rnhti=m_pTree->GetNextItem(hti,TVGN_NEXTVISIBLE); rn rn rnelse rn // loading code rnCString sLine; rnif (!ar.ReadString(sLine)) rnreturn; rnHTREEITEM hti=NULL; rnint indent,baseindent=0; rnwhile(sLine[baseindent]=='\t') rnbaseindent++; rndo rn rnif(sLine.GetLength()==0) rncontinue; rnfor(indent=0;sLine[indent]=='\t';indent++); rnsLine=sLine.Right(sLine.GetLength()-indent); rnindent -= baseindent; rnrnHTREEITEM parent; rnint previndent=GetIndentLevel(hti); rnif(indent==previndent) rnparent=m_pTree->GetParentItem(hti); rnelse rnif(indent>previndent) rnparent=hti; rnelse rn rnint nLevelsUp=previndent-indent; rnparent=m_pTree->GetParentItem(hti); rnwhile(nLevelsUp--) rnparent=m_pTree->GetParentItem(parent); rn rnhti=m_pTree->InsertItem(sLine,parent?parent:TVI_ROOT,TVI_LAST); rn while (ar.ReadString(sLine)); rn rnrnrn最后在DOC里 rnvoid CTestDoc::Serialize(CArchive& ar) rn rnCMainFrame *pMainFrame=(CMainFrame *)AfxGetMainWnd(); rnm_Tree1=pMainFrame->GetTree1(); //树视图的指针 rn m_Tree2=pMainFrame->GetTree2(); rnif (ar.IsStoring()) rn rn// TODO: add storing code here rnm_Tree1->Serialize(ar); rnm_Tree2->Serialize(ar); rn rnelse rn rn// TODO: add loading code here rnm_Tree1->Serialize(ar); rnm_Tree2->Serialize(ar); rn rn rnrn但问题是第二个视图没数据,现在想知道<em>怎么</em>在读取第一个的时候,不全部读完rnrnrn rn
单文档多视图数据库问题
用<em>mfc</em>做的一个sdi程序,用CSPlietWnd分割视图把视图分为2部分,左边是一排按钮。点击其中一个右边出现相应的页面。 rn已经创建了4个视图类, 全都继承自CFormView。并且每一个类都关连了一个Dialog资源。还有一个视图是class CMyView : public CFormView 是通过向导生成的,也关连了一个Dialog资源,其他视图都是后来添加的。rn因为这几个视图都用同一个数据库来<em>实现</em>功能。所以我在其中一个视图上来选择数据库。想把这个视图的信息传递给给别的视图。 rnrn我在BOOL CMyApp::InitInstance()里加了如下代码: rn// 初始化COM,创建ADO连接等操作 rn AfxOleInit(); rn m_pConnection.CreateInstance(__uuidof(Connection)); rn接着在视图CMyView 中添加一个点击按钮事件,代码如下: rnvoid CMyView::OnBrowse() rn rn。。。 rnif(SUCCEEDED(m_pConnection.CreateInstance(__uuidof(Connection) ))) rn rn m_pConnection->CursorLocation=adUseClient; //游标类型 rn rn rntry rn rn m_pConnection->Open(。。。,"","",adModeUnknown); rnrn rncatch(_com_error e) rn rnrn AfxMessageBox("数据库连接失败,确认数据库是否在当前路径下!"); rnrn rnrnrn rn现在我在CPage2视图里(继承自CFormView,关连了一个Dialog资源)添加如下代码: rn先添加一个成员变量:_ConnectionPtr m_pConnection; rn接着在他的一个函数里加如下代码: rnvoid CPage2::OnTj() rn rn CString strTemp,m_bt; rn GetDlgItem(IDC_EDIT1)->GetWindowText(m_bt); rn GetDlgItem(IDC_COMBO1)->GetWindowText(strTemp); rn rn str1.Format("insert into wz(title,class)values('%s','%s')", m_bt,strTemp); rn try rn rnm_pConnection->Execute((_bstr_t)str1,NULL,adCmdText); rn rn catch(_com_error *e) rn rnreturn; rn rnrnrn rn为什么运行出错呢?一到这里m_pConnection->Execute((_bstr_t)str1,NULL,adCmdText); 就出错 rnrnrn
单文档多视图的创建
想要在一个<em>单文档</em>中<em>实现</em><em>多视图</em> 采用静态分割 想把窗口化成三部分 两行 第一行又分为两列 第一行第一列放TreeView第二列放ListView 第二行放ListViewrn我的操作是 首先 见一个<em>单文档</em>的工程 基类是CFramViewrn 添加了三个类视图 CTreeView1基类是CTreeView rn CListView1和CListView2基类都是是CListViewrn然后在mainfrm.h中定义CSplitterWnd v,h; 然后在mainfrm.cpp中用切分窗口代码如下rnBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)rnrn // CG: The following block was added by the Splitter Bar component.rn rn v.CreateStatic(this,2,1);//先切分成2行rn h.CreateStatic(&v,1,2,WS_CHILD|WS_VISIBLE,v.IdFromRowCol(0,0));第一行再切分成两列rn v.CreateView(1,0,RUNTIME_CLASS(CListView2),CSize(200,100),pContext);rn h.CreateView(0,0,RUNTIME_CLASS(CTreeView1),CSize(100,100),pContext);rn h.CreateView(0,1,RUNTIME_CLASS(CListView1),CSize(100,100),pContext);rn return TRUE;rn rnrn结果 各个视图都有但是开始的时候第一行的两个视图都很小只能看到第二行的视图,需要拖动一下才能显示出第一行的两个视图,麻烦帮我看看<em>怎么</em>解决,另外对于上面个工程有什么建议,比如别的创建<em>多视图</em>的办法什么的 谢谢.rn 还有想要采用<em>多视图</em> 从网上书上看到很多方法 有一个是通过insert->new form..新建三个窗体再在mainfrm中静态切割 也能<em>实现</em>,但是问题是新建的窗体中控件是拖放进去的 他们的大小<em>怎么</em>随着各自视图的大小变化呢?rn 刚开始接触<em>多视图</em>,感觉很乱麻烦各位解答一下上面几个问题.
单文档多视图分割
该文档描述了在MFC中如何<em>实现</em>窗口的分割,并予以<em>实现</em>
关于单文档多视图的问题
在CMainFrame::OnCreateClien函数中使用CSplitterWnd类进行分割,分割出的几个view类如何获取到文档类呢?rn我想再view类中显示文档类中的数据,不知道<em>怎么</em>做。
单文档多视图的分割
我现在又一个<em>单文档</em><em>多视图</em>的程序,已经建立好他们的关系,视图为CView1,CView2;rn rn 表现为当前运行时,只显示一个视图,即CView1显示的时候CView2隐藏,他们之间也可以相互切换显示;rnrn 现在的问题是,我想要分割CView2,而不分割CView1 如何操作呢?
请教:单文档多视图的问题
想写一个画K线图的程序。rn要把一个窗口分成2半,上面画K线,下面画成交量,并且希望使上下两半的空间大小可以用鼠标来拖动改变,想上半部分大一些就大一些,想下半部分大一些就大一些。rn现在用<em>单文档</em><em>多视图</em>来解决.rn现在初步已经<em>实现</em>了这个.但是遇到以下几个问题,求教.rn谢谢!rnrn1、如何使上、下两个视图保持一定的比例?比如说K线图占2/3,成交量占1/3,改变窗口大小的时候,这个比例也不变。现在我<em>实现</em>的程序中,程序刚运行起来的时候,能够保持这个比例,但是一旦最大化窗口后,上下比例就改变了。(见前两张图)rn 这个地方的代码是这样的,请大家帮忙看看:rnrnBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,rn CCreateContext* pContext)rnrn /*rn return m_wndSplitter.Create(this,rn 2, 1, // TODO: adjust the number of rows, columnsrn CSize(10, 10), // TODO: adjust the minimum pane sizern pContext);rn */rn RECT crect;rn GetClientRect(&crect);rn int kWindowHeight = crect.bottom*2/3;rn VERIFY(m_wndSplitter.CreateStatic(this, 2, 1));rn VERIFY(m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTestView),rn CSize(0, kWindowHeight), pContext));rn VERIFY(m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CVolumeView),rn CSize(0, 0), pContext));rn return TRUE;rnrnrnrn2、我现在是先在一个视图中把所有的K线画一遍,然后再在另一个视图中把所有的成交量画一遍。如果想要:画一根K线,再画一根成交量图;然后再画一根K线,再画一根成交量图;……;这样一根一根画,这个<em>怎么</em><em>实现</em>?rnrn3、如果当前窗口只能显示一部分K线图,那我想用翻页键来往前翻,怎样做到往前翻一页的时候,一个视图里的K线翻到前面了,另一个视图中的成交量也能相对应的翻过去?rnrn4、现在很多股票软件都支持十字光标,就是当鼠标点到某一天的K线上时,出来一个十字线。我现在使用了两个视图,怎样<em>实现</em>这个十字线的功能,使得当鼠标点在K线上的时候,十字线能够在当天的成交量上也有显示;反过来当鼠标点在成交量上的时候,K线上也有十字线。(十字线的样子见图)rnrn5、我知道可以在<em>单文档</em>单视图上画K线和成交量,在单视图上,我希望这两部分的空间可以用鼠标来变动,可以吗?应该怎样<em>实现</em>?rnrn
单文档多视图的问题
为什么我新建视图的时候,所有的视图都在变成了一样?rn是否为只有一个Doc?
单文档多视图工程的问题
我建立了一个<em>单文档</em>的工程,我想要<em>实现</em>两个视图的切换,两个视图使用同一个文档rn我在InitInstance函数中建立了两个文档模版的关联,但会出错无法显示rnInitInstance函数运行到下面这里就返回了,这是<em>怎么</em>回事啊?<em>怎么</em>解决?rnif (!ProcessShellCommand(cmdInfo))rn return FALSE;rnrnrn我建立的文档摸版如下:rnpDocTemplate = new CSingleDocTemplate(rn// IDR_MAINFRAME,rn IDR_MNULL,rn RUNTIME_CLASS(CDLP4000Doc),rn RUNTIME_CLASS(CMainFrame), // main SDI frame window pDLP48DocTemplatern RUNTIME_CLASS(CDLP4000View));rn AddDocTemplate(pDocTemplate);rnrn pDLP48DocTemplate = new CSingleDocTemplate(rn// IDR_MAINFRAME,rn IDR_MNULL,rn RUNTIME_CLASS(CDLP4000Doc),rn RUNTIME_CLASS(CMainFrame), // main SDI frame window rn RUNTIME_CLASS(CDLP4_8View));rn AddDocTemplate(pDLP48DocTemplate);
单文档多视图切换
我在做一个<em>单文档</em><em>多视图</em>切换的程序,运行到如下的代码为什么会出现错误rnrn switch(nForm)rn //这些ID是对话框的标志符,但也可以用其他的标志rn rn case IDD_DIAGNOSE_FORM :rn pNewActiveView=(CView*)new CDiagnoseView;rn break;rn case IDD_FORMVIEWRSAVE:rn pNewActiveView=(CView*)new RSaveView;rn break;rn case IDD_FORMVIEWJIZHEN :rn pNewActiveView=(CView*)new JiZhenView;rn break;rn case IDD_FORMVIEWRCORRECT :rn pNewActiveView=(CView*)new RCorrectView;rn break;rn rnrn错误信息是:rnrnD:\Diagnose\Diagnose\MainFrm.cpp(131) : error C2061: syntax error : identifier 'CDiagnoseView'rnD:\Diagnose\Diagnose\MainFrm.cpp(134) : error C2061: syntax error : identifier 'RSaveView'rnD:\Diagnose\Diagnose\MainFrm.cpp(137) : error C2061: syntax error : identifier 'JiZhenView'rnD:\Diagnose\Diagnose\MainFrm.cpp(140) : error C2061: syntax error : identifier 'RCorrectView'
单文档多视图之间的切换
SDI程序,可以<em>实现</em>多个视图之间的切换。切换到新的视图后,原有视图销毁。
VC单文档多视图操作
包含各种操作,指针获取,视图切换 包含各种操作,指针获取,视图切换
单文档多视图与相互切换
<em>实现</em><em>单文档</em><em>多视图</em>,非切割方式,可以双击listview某一项,<em>实现</em>切换
单文档多视图VC++下
<em>单文档</em><em>多视图</em> VC++ MFC VC6 XP
单文档多视图的代码!
要求是动态的,不是静态的。rnrn即:在用菜单切换视图时,先删除掉原来的视图,再生成新视图。rnrn我找到一个代码,但<em>怎么</em>也调试不过,郁闷啊!代码如下:(我调试时在CreateView函数处发生了错误)rn=================================================================rnrn  步骤描述:rn  1.删除当前的视图rn  首先需要获得当前视图的指针,不能使用GetActiveView()和GetActiveDocument()这两个函数,当前视图有可能处在未激活状态,rn  所以应该使用EnumChildWindows这个Win32API函数,函数定义如下:rn  BOOL EnumChildWindows(rn  HWND hWndParent, // 父窗口的句柄rn  WNDENUMPROC lpEnumFunc, // 用户自定义回调函数rn  LPARAM lParam // 传给回调函数的自定义参数rn  );rn  回调函数的定义如下:rn  BOOL CALLBACK EnumChildProc(rn  HWND hwnd, // 字窗口的句柄rn  LPARAM lParam // 自定义参数rn  );rn  EnumChildWindows函数遍历父窗口的所有子窗口,递归调用用户定义的回调函数,当回调函数返回FALSE时,停止遍历,rn  至于何时返回FALSE,这根据用户自己需要编写的回调函数来决定。rn  删除视图使用DeleteWindow()这个函数,用delete也可以删除,但还要其他底层的操作,这里就不详细介绍了,因为删除视图使用DeleteWindow()最合适、方便了。在删除视图的时候还要注意不能将文档同时自动删除。rnrnrn  删除视图的代码如下:rn   ......rn CWnd* pWnd;rn CWnd* pWndToDelete;rnrn // 使用EnumChildWindows查找从CView继承的子窗口rn ::EnumChildWindows(m_hWnd, MyWndEnumProc, (LPARAM)&(pWnd));rn if(pWnd == NULL)rn // 没有发现子窗口rn return FALSE;rn rn // 发现子窗口,找到级别最高的子窗口,即父窗口为CMainFrame的窗口rn while( lstrcmp(pWnd->GetRuntimeClass()->m_lpszClassName, "CMainFrame") )rn rn pWndToDelete = pWnd;rn pWnd = pWnd->GetParent();rn  rnrn //确保视图被删除时文档不被删除rn pDoc->m_bAutoDelete = FALSE; rn // 删除视图rn pWndToDelete->DestroyWindow();rn pDoc->m_bAutoDelete = TRUE; rn   ......rn   rnrnrnrn // 用户定义的回调函数:rnBOOL CALLBACK MyWndEnumProc(HWND hWnd, LPARAM ppWndLPARAM)rnrn CWnd* pWndChild = CWnd::FromHandlePermanent(hWnd);rn CWnd** ppWndTemp = (CWnd**)ppWndLPARAM;rn if( pWndChild && pWndChild->IsKindOf(RUNTIME_CLASS(CView)) )rn rn // 发现任何从CView继承的子窗口,将子窗口指针传递出去rn *ppWndTemp = pWndChild;rn // 停止继续搜索 rn return FALSE;rn rn elsern rn *ppWndTemp = NULL;rn // 继续搜索rn return TRUE;rn rnrnrnrnrn创建新的视图rn CDocument* pCurrentDoc = ((CFrameWnd*) m_pMainWnd)->GetActiveDocument();rn // 初始化创建上下文相关指针rn CCreateContext newContext;rn newContext.m_pNewViewClass = RUNTIME_CLASS(CView1);rn newContext.m_pCurrentDoc = pCurrentDoc;rn newContext.m_pNewDocTemplate = NULL;rn newContext.m_pLastView = NULL;rn newContext.m_pCurrentFrame = NULL;rn CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&newContext));rn if( pNewView == NULL )rn rn return FALSE;rn rn // 使用CreateView创建的视图不能自动调用OnInitialUpdate函数,需要人工调用OnInitialUpdate函数或者发送WM_INITIALUPDATE消息rn pNewView->OnInitialUpdate(); rn // 使用CreateView创建的视图不会自动显示并且激活,需要人工操作rn pNewView->ShowWindow(SW_SHOW); rn SetActiveView(pNewView);rn RecalcLayout();rn=====================================================================rnrnrn
单文档多视图 视图切割
我要做的是上面3个视图 下面1个视图;思路做两次。第一个把分上下两个,第二次上面分3个视图。 首先定义分割变量 CSplitterWnd m_wndSplitter; //视图分割 CSplitterWnd m_wndSplitter2; //视图分割 在框架类下面添加消息函数 添加如下函数 /*视图分割*/ BOOL CMainFrame::OnCreateCl
单文档多视图界面
我想建立一个基于<em>单文档</em>的工程,要有启动登陆的对话框和另外两个完成主要功能的对话框,而且这三个对话框之间要可以来回切换,请问<em>怎么</em><em>实现</em>好?
求助,单文档多视图
我做个程序,想用<em>单文档</em><em>多视图</em>,为何自己加入一个继承自CTreeView的View类时,如class CMyView : public CTreeView,老说“'CTreeView' : base class undefined”。rn
单文档多视图 outlook 问题
www.vckbase.com 19中 一个效果很好的outlookbar控件CXTOutBarCtrl ,我想把右边view生成为可变的FormView,谁能指点下 谢谢先rn要已有程序 请留联系方式
单文档创建多视图
本人开发项目遇见这样的问题rn1.<em>单文档</em>显示<em>多视图</em>rn2.有三个视图,其中一个是<em>单文档</em>默认的view,还有两个是用splitter切分的显示的viewrn3.即有两个视图在切换(原来的view和用splitter的view)rn4.要求在开始的时候显示原来的view(类型为cview),有一按钮,功能为显示splitter切分的viewrn5.现在遇见的难点就在于,<em>怎么</em>在<em>单文档</em>动态的调用splitter来创建视图,原因在于用splitter创建视图需要调用CmainFrame的OnCreateClient函数
单文档多视图问题
用<em>mfc</em>做的一个sdi程序,用CSPlietWnd分割视图把视图分为2部分,左边是一排按钮。点击其中一个右边出现相应的页面。 rn已经创建了4个视图类, 全都继承自CFormView。并且每一个类都关连了一个Dialog资源。还有一个视图是class CMyView : public CFormView 是通过向导生成的,也关连了一个Dialog资源,其他视图都是后来添加的。rnrn我现在在其中一个视图上,<em>实现</em>了一个功能。现在在另外一个视图上也要<em>实现</em>一个类似的功能。可以直接利用刚才的那个视图的功能吗?如果可以该<em>怎么</em>做呢?
单文档多视图和多文档的区别?
如题
单文档多视图切换问题
我在一<em>单文档</em>中创建了多个视图,在CmainFrame中加入了CMSComm控件,在断开串口下调试,各视图间的切换正常,当连接上串口通信后,默认的第一个视图工作正常,串口数据接收处理也正常,但当切换到其它任一视图时就会跳出“MY.exe 中的 0x7830dffc 处未处理的异常: 0xC0000005: 读取位置 0xbaadf011 时发生访问冲突”
单文档多视图 FormView
首先声明,我并不是用拆分窗口的方法来创建视图的。rnrn我利用的是在APP中的InitInstance()中rnCView* pActiveView = ((CFrameWnd*)m_pMainWnd)->GetActiveView();rnrnm_pViews[0]= pActiveView;rn rnm_pViews[1] = (CView*)new CAnotherview;rnrnm_pViews[2] = (CView*)new CSview;rnrnm_pViews[3] = (CFormView*)new CFlowView;rnrn创建的视图。rnrn现在的问题是 我想创建一个基于FormView下的视图 FormView上添加了树控件,但是树控件却显示不了我插入的节点。rnrn疑问1:为什么显示不了?是因为函数错误吗?rn疑问2:如果这个方法不行的话 有没有其他方法??rnrn谢谢~rnrn
疯了,单文档多视图
通过CSplitterWnd分割了视图,现在是左边一个CTreeView做树状导航栏,右边上半部分动态显示曲线,下半部分创建CListCtrl控件动态显示数据,rn现在各视图应该如何通信?比如双击左侧的Tree让右侧的列表控件显示相应的选项数据?rn我在左侧类中定义CListCtrl类的对象然后双击时调用函数,编译能过执行出错。
单文档多视图的切换问题
我写了一个<em>单文档</em><em>多视图</em>的切换程序.出了问题,必须先激活才能应用:如果开始点击3号试图则2号视图以后将无法执行!如果开始依次点击,然后顺序可以任意.rnvoid CMainFrame::OnWatchview() rnrn // TODO: Add your command handler code herern SwitchView(3);rnrnrnvoid CMainFrame::OnTableview() rnrn // TODO: Add your command handler code herern SwitchView(2);rnrnrnvoid CMainFrame::OnMainView() rnrn // TODO: Add your command handler code herern SwitchView(1);rnrnvoid CMainFrame::SwitchView(int nView)rnrn //获得当前视图rnCView*pActiveView=GetActiveView();rnrn//将当前视图赋给某个指针rnif(pActiveView->IsKindOf(RUNTIME_CLASS(CMoreviewView)))rnrnpMainView=pActiveView;rnrnif(pActiveView->IsKindOf(RUNTIME_CLASS(CTableview)))rnrnpTableview=pActiveView;rnrnif(pActiveView->IsKindOf(RUNTIME_CLASS(CWatchview)))rnrnpWatchview=pActiveView;rnrnif(pActiveView->IsKindOf(RUNTIME_CLASS(Date1View)))rnrnpDate1View=pActiveView;rnrnif(pActiveView->IsKindOf(RUNTIME_CLASS(Date2View)))rnrnpDate2View=pActiveView;rnrnif(pActiveView->IsKindOf(RUNTIME_CLASS(Date3View)))rnrnpDate3View=pActiveView;rnrn//创建视图类rnCCreateContext context;rncontext.m_pCurrentDoc=pActiveView->GetDocument();rnif(pMainView==NULL)rnrnpMainView=(CView*)new CMoreviewView();rnpMainView->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,1,&context);rnpMainView->OnInitialUpdate();rnrnif(pTableview==NULL)rnrnpTableview=(CView*)new CTableview();rnpTableview->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,2,&context);rnpTableview->OnInitialUpdate();rnrnif(pWatchview==NULL)rnrnpWatchview=(CView*)new CWatchview();rnpWatchview->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,3,&context);rnpWatchview->OnInitialUpdate();rnrnif(pDate1View==NULL)rnrnpDate1View=(CView*)new Date1View();rnpDate1View->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,4,&context);rnpDate1View->OnInitialUpdate();rnrnif(pDate2View==NULL)rnrnpDate2View=(CView*)new Date2View();rnpDate2View->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,5,&context);rnpDate2View->OnInitialUpdate();rnrnif(pDate3View==NULL)rnrnpDate3View=(CView*)new Date3View();rnpDate3View->Create(NULL,NULL,WS_BORDER,CFrameWnd::rectDefault,this,6,&context);rnpDate3View->OnInitialUpdate();rnrn//如果用户选择当前视图则退出rnif( nView==1 && pActiveView->IsKindOf(RUNTIME_CLASS(CMoreviewView))) rnrnreturn;rnrnif( nView==2 && pActiveView->IsKindOf(RUNTIME_CLASS(CTableview)) ) rnrnreturn;rnrnif( nView==3 && pActiveView->IsKindOf(RUNTIME_CLASS(CWatchview)) ) rnrnreturn;rnrnif( nView==4 && pActiveView->IsKindOf(RUNTIME_CLASS(Date1View)) ) rnrnreturn;rnrnif( nView==5 && pActiveView->IsKindOf(RUNTIME_CLASS(Date2View)) ) rnrnreturn;rnrnif( nView==6 && pActiveView->IsKindOf(RUNTIME_CLASS(Date3View)) ) rnrnreturn;rnrn//关闭当前视图rnpActiveView->ShowWindow(SW_HIDE);rn//显示用户要求的视图rnswitch(nView)rnrncase 1: rnSetActiveView(pMainView);rnpMainView->ShowWindow(SW_SHOW);rnpMainView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rncase 2: rnSetActiveView(pTableview);rnpTableview->ShowWindow(SW_SHOW);rnpTableview->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rncase 3:rnSetActiveView(pWatchview);rnpWatchview->ShowWindow(SW_SHOW);rnpWatchview->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rncase 4:rnSetActiveView(pDate1View);rnpDate1View->ShowWindow(SW_SHOW);rnpDate1View->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rncase 5:rnSetActiveView(pDate2View);rnpDate2View->ShowWindow(SW_SHOW);rnpDate2View->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rncase 6:rnSetActiveView(pDate3View);rnpDate3View->ShowWindow(SW_SHOW);rnpDate3View->SetDlgCtrlID(AFX_IDW_PANE_FIRST);rnbreak;rnrn//重绘rnRecalcLayout();rnreturn; rnrnrnvoid CMainFrame::OnUpdateWatchview(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herernpCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(CWatchview))); rnrnrnvoid CMainFrame::OnUpdateMainView(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herern pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(CMoreviewView))); rnrnrnvoid CMainFrame::OnUpdateTableview(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herernpCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(CTableview))); rnrnrnvoid CMainFrame::Ondate1() rnrn // TODO: Add your command handler code herern SwitchView(4);rnrnrnvoid CMainFrame::Ondate2() rnrn // TODO: Add your command handler code herern SwitchView(5);rnrnrnvoid CMainFrame::Ondate3() rnrn // TODO: Add your command handler code herern SwitchView(6);rnrnrnvoid CMainFrame::OnUpdatedate1(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herern pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(Date1View))); rnrnrnvoid CMainFrame::OnUpdatedate2(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herern pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(Date2View))); rnrnrnvoid CMainFrame::OnUpdatedate3(CCmdUI* pCmdUI) rnrn // TODO: Add your command update UI handler code herern pCmdUI->SetCheck(GetActiveView()->IsKindOf(RUNTIME_CLASS(Date3View))); rnrn
单文档多视图的编译错误
用VC编个<em>单文档</em><em>多视图</em>的界面,编译时出现下面的错误:rnerror C2143: syntax error : missing ';' before '*'rnerror C2501: 'CCuteFTPDoc' : missing storage-class or type specifiersrnerror C2501: 'GetDocument' : missing storage-class or type specifiersrn出现的错误指在文件CuteFTPView.h的同一行语句上:rnpublic:rn CCuteFTPDoc* GetDocument();rnrn请教大家<em>怎么</em>解决啊?
单文档连接多视图的问题
<em>单文档</em>连接<em>多视图</em>的问题:rn CMyTestApp rn CMyTestDocrn CMyTestViewrn 添加视图CMyTreeView(继承于CTreeView)到程序中,改写GetDocment()函数,为何CMyTreeView不能定位m_pDocument(检查得到m_pDocument=0)成员变量?
求助:单文档多视图的问题~~
我建立了一个<em>单文档</em>程序,通过窗口分割,有多个视图,<em>怎么</em>把这几个视图rn和这一个文档联系起来?rn最好能通过代码说明,谢谢~~
单文档多视图通信问题
用<em>mfc</em>做的一个sdi程序,用CSPlietWnd分割视图把视图分为2部分,左边是一排按钮。点击其中一个右边出现相应的页面。rn已经创建了4个视图类, 全都继承自CFormView。并且每一个类都关连了一个Dialog资源。还有一个视图是class CMyView : public CFormView 是通过向导生成的,也关连了一个Dialog资源,其他视图都是后来添加的。rn我现在希望在其中一个视图CMyView 的功能是设置功能。想把这个视图的信息传递给给别的视图。rn在视图CMyView 中添加一个点击按钮事件,代码如下:rnvoid CMyView::OnBrowse() rn rnCFileDialog fileDlg(TRUE); rnif(IDOK == fileDlg.DoModal()) rn rnGetDlgItem(IDSRCDIR)->SetWindowText(fileDlg.GetPathName()); rn rnCString dstSrc; rndstSrc = fileDlg.GetPathName(); rn rndstSrc里就存放了位置信息,我就想获得这个值dstSrc传递给别的视图。rnrn说是首先获得视图的指针,代码如下;rnCMainFrame* pmainframe=(CMainFrame*)this->GetParent(); //rnCpage1 *p1 =(cpage1)pmainframe->m_wndspitter.GetPane(0,1); rn再<em>怎么</em>做呢?rnrn rn
关于单文档多视图
我在做实验是要用到在一个<em>单文档</em>应用程序中,点击菜单,切换不同的视图,视图不需要进行分割。已经在网上查看过一些资料,但还是不太明白,希望高手不吝赐教。能够具体讲一讲思路和需要用到什么类,如果有资料希望可以和我分享一下,不胜感激。
MDI单文档多视图的文档处理
我用MDI做了个<em>单文档</em><em>多视图</em>的界面rn 引用了3个模板 子窗口的VIEW类都是FormView类rnm_Doc为CPtrArray 存储的是当前活动的文档rnrn下面是将子窗口链接至文档其中一个的函数rnvoid CEB666App::On11() rnrn if(p11Frame!=NULL)rn rn p11Frame->MDIActivate();rn return ;rn rn m_pdoc =(CMyownDoc *) m_Doc.GetAt(1);rn CDocTemplate *pDocTemplate = p11Template;rn p11Frame= (CChildFrame *)pDocTemplate->CreateNewFrame(m_pdoc,NULL);rn pDocTemplate->InitialUpdateFrame(p11Frame,m_pdoc);rnrnrnrn想问一下 如何才能将多个子窗口视图对应的文档正确保存啊rnrn我关闭所有子窗口时 似乎文档也被关闭了 再重新打开一个子窗口就出错中止运行rnrn 另外菜单打开、 保存也不能正常使用了 要如何更改比较好a rnrn每天晚上持续关注。rnrn
单文档多视图和OpenGL
我的<em>单文档</em> 2视图。 静态切分。 但有一个视图OnDraw中不能显示openGL函数画的图,背景可以显示。另外的一个视图可以正常画图...为什么呢 ?我要让他显示OpenGL 命令.如: glutSolidCube(12.0f); rn glBegin(GL_LINE_LOOP); rn glColor3f(1.f,0.f,0.f); rn glVertex3f(10.0f,10.0f,10.0f); rn glVertex3f(-10.0f,10.0f,10.0f); rn glVertex3f(-10.0f,-10.0f,10.0f); rn glVertex3f(10.0f,-10.0f,10.0f); rn glEnd(); rn显示不了. 请问谁能告诉我.谢谢
单文档多视图通信
用<em>mfc</em>做的一个sdi程序,用CSPlietWnd分割视图把视图分为2部分,左边是一排按钮。点击其中一个右边出现相应的页面。 rn已经创建了4个视图类, 全都继承自CFormView。并且每一个类都关连了一个Dialog资源。还有一个视图是class CMyView : public CFormView 是通过向导生成的,也关连了一个Dialog资源,其他视图都是后来添加的。因为这几个视图都用同一个数据库来<em>实现</em>功能。所以我在其中一个视图上来选择数据库。想把这个视图的信息传递给给别的视图。rn rn我在其中一个视图CMyView 上来设置数据库。rn在视图CMyView 中添加一个点击按钮事件,代码如下:rn void CMyView::OnBrowse() rn rnCFileDialog fileDlg(TRUE); rnif(IDOK == fileDlg.DoModal()) rn rnGetDlgItem(IDSRCDIR)->SetWindowText(fileDlg.GetPathName()); rn rnCString dstSrc; rndstSrc = fileDlg.GetPathName(); //数据库所在位置rn rndstSrc里就存放了位置信息,我就想获得这个值dstSrc传递给别的视图。 rn这该<em>怎么</em>做呢?希望大家指点。给我点思路吧。谢谢rnrn
单文档 多文档 多视图
这三个概念我理解起来有些矛盾,还望高人来解析一下,谢谢rn<em>单文档</em>,Single Document,顾名思义,就是有一个CXXDoc类。rn多文档,Multiple Documents,应该是有多个CXXDoc类才应该叫多文档啊,为什么利用AppWizard 创建的MDI程序只有一个CXXDoc类呢?而创建的MDI程序有多个视图,每点击新建就有生成一个视图,这些三个概念到底该<em>怎么</em>理解呢?
单文档多视图的打印
在MFC SDI程序中加入了3个视图:CView派生的一个、CFormView派生的一个、CListView派生的一个。现在想<em>实现</em>CView和ClistView的打印,可以单独打印,也可以合并打印在一起。不知道该<em>怎么</em>解决。rn
单文档多视图,文档模板与多视图相关连的问题
<em>单文档</em><em>多视图</em>,其中一个是FormView类,另外两个是CVIEW类,其中一个CVIEW类窗口与文档模板相关连,问:如何在FORMVIEW类窗口上的函数中将采集并处理后的数立即以图形的方式显示在与文档模板相关连的视图上,(并且不能把原来视图上的东西删除),同时将采集过程的原始数据显示在另一个CVIEW类窗口中。一个<em>单文档</em>如何与多个视图同时关联?
单文档多视图源码(with error)
关于创建<em>单文档</em><em>多视图</em>MFC程序,我尝试了很多方法,都没能成功,企盼高手能指点一二!MainFrm类中设置了OnSwitchView方法来<em>实现</em>在CView* pTestView; CView* pDynScrollView; 之间切换。虽然在csdn上看到了许多类似的问题,可苦于每次点击相关topic都提示错误页面。附上我的代码,高手们请花个几分钟帮我解决难题!
单文档多视图显示
http://blog.csdn.net/usister/article/details/17613971 一个文档可能对应多个视图,同一份数据,可能需要多种方式来显示
请教 关于单文档多视图
我<em>怎么</em>样才能获得CCreateContext*pContext参数rn我想在切份窗口中用一个窗口动态的显示不同的视图
请教单文档多视图
我想用一个文档类的数据来画两个不同的视图,不知道该<em>怎么</em>办,哪位大侠给指点一下或者给个例子,不胜感激之至!!
请教:关于单文档多视图
把<em>单文档</em>的视图区拆成了两部分,如何让两部分分别显示不同的内容(属性)?
单文档多视图的切分窗口
参照网上信息,做了一个类VC的界面(<em>单文档</em><em>多视图</em>的切分窗口),并在左边的切分窗口的FromView上放了一个BUTTON,并响应了BUTTON单击事件,希望是在点BUTTON时,会在右切分窗口的视图上输出一行文字。但始终<em>实现</em>不了。求教!谢(本人初学)
zai单文档 多视图 的问题
创建了一个工程rnSDI 的 包含多个View。(CListView、CEditView)rn查找了codeguru、和codeproject。rn试了几个例子。效果一般。rn1、谁有好的例子 发给我看看 谢谢。rn2、工程是基于CListView建立的,CListView 预览、打印正常。rn 可是在自己建的CEditView 类中如何加入预览、打印功能?rn谢谢rnrnking_public@163.com
svn培训英文文档:Polarion SubTrain下载
This open source Subversion training course provides materials for both Subversion user and administrator training. (Open Source) 相关下载链接:[url=//download.csdn.net/download/lylhelin/2039511?utm_source=bbsseo]//download.csdn.net/download/lylhelin/2039511?utm_source=bbsseo[/url]
天易成网管下载
局域网管理,能穿ARP防火墙,被管理电脑不能开启ARP防火墙和ARP静态绑定. 相关下载链接:[url=//download.csdn.net/download/u012806840/6537695?utm_source=bbsseo]//download.csdn.net/download/u012806840/6537695?utm_source=bbsseo[/url]
用Fragment实现的Emoji表情碎片,可以重用到项目中下载
自定义的emoji表情块,可以直接在工程引用 相关下载链接:[url=//download.csdn.net/download/xfchenlei/7214611?utm_source=bbsseo]//download.csdn.net/download/xfchenlei/7214611?utm_source=bbsseo[/url]
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件
我们是很有底线的