关于窗体非常简单,在线等 我创建了一个单文本的窗体,又加入另一个FormView-myform,问题很简单,我在菜单中一点,弹出这个myform,我是菜鸟,尽量详细点,由代码最好,解决马上给分,在线等,急啊,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 flyelf我的主窗体是formview新窗体也是怎么弄急啊 你所说的实际上就是视图的切换。在子框架响应菜单消息后,显示你所需要的窗体(视图)在子框架的OnCreate()中创建两个视图,一个是默认的,一个是你的FormView-myform,然后用AddView关联到文本类(CDocument)需要显示哪个就显示哪个就行了。至于实现代码大致如下:OnCreate(){ m_pMyView = new CFormView;m_pMyView->Create(...);}响应菜单消息OnShowMyView{ m_pOldView = GetActiveView(); m_pOldView->ShowWindow(SW_HIDE); m_pMyView->ShowWindow(SW_SHOW);}OnShowDefaultView(){ m_pOldView->ShowWindow(SW_SHOW); m_pMyView->ShowWindow(SW_HIDE);}仅供参考,可能有更标准的实现,在网上搜寻一下。www.codeguru.comwww.codeproject.com 找了个switchview pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nViewID, &context);这句话出错?另外楼上的在MainFrame .h中include "myform.h"就有一大堆错误 void CMainFrame::SwitchView(UINT nViewID){ CView *pOldActiveView =GetActiveView(); CView *pNewActiveView=(CView*)GetDlgItem(nViewID); if(pNewActiveView==NULL) { switch(nViewID) { case IDD_DIALOG1: //根据新建的对话框的对话框并生成新的基于CFormView的类 pNewActiveView=(CView*)new myForm1(); break; } CCreateContext context; context.m_pCurrentDoc=pOldActiveView->GetDocument(); pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nViewID, &context); pNewActiveView->OnInitialUpdate(); } SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pOldActiveView->ShowWindow(SW_HIDE); //I use the win32 based function:SetWindowLong() instead of the older style:SetWindowWord() ::SetWindowLong(pNewActiveView->m_hWnd,GWL_ID,AFX_IDW_PANE_FIRST); this->RecalcLayout(); delete pOldActiveView;} 讨论com口的传输速度问题 请问如何判断窗口是否具WS_MAXIMIZEBOX或WS_MINIMIZEBOX属性: 网络实时数据传输问题 请大家帮我分析下这个fscanf()的问题!! 在多线程里显示对话框的问题 大家帮忙,DCOM程序,如何移到WINDOWS XP下类同windows2000一样能用? 多线程资源释放的问题 一个关于线程的问题。 急:CObList对象Serialize的问题,帮忙看看怎么回事?提示保存文档失败。 请问谁有msdn的中文版?或是mfc类和成员的中文介绍?可愿意与小弟分享*^* 请教这个函数中的(hbitmap)的来历(高分) 我拷,什么世道?
我的主窗体是formview
新窗体也是
怎么弄
急啊
在子框架响应菜单消息后,显示你所需要的窗体(视图)
在子框架的OnCreate()中创建两个视图,一个是默认的,一个是你的FormView-myform,
然后用AddView关联到文本类(CDocument)需要显示哪个就显示哪个就行了。
至于实现代码大致如下:
OnCreate()
{
m_pMyView = new CFormView;
m_pMyView->Create(...);
}响应菜单消息
OnShowMyView
{
m_pOldView = GetActiveView();
m_pOldView->ShowWindow(SW_HIDE);
m_pMyView->ShowWindow(SW_SHOW);
}
OnShowDefaultView()
{
m_pOldView->ShowWindow(SW_SHOW);
m_pMyView->ShowWindow(SW_HIDE);
}仅供参考,可能有更标准的实现,在网上搜寻一下。
www.codeguru.com
www.codeproject.com
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nViewID,
&context);
这句话出错?
另外楼上的在MainFrame .h中include "myform.h"就有一大堆错误
{
CView *pOldActiveView =GetActiveView();
CView *pNewActiveView=(CView*)GetDlgItem(nViewID);
if(pNewActiveView==NULL)
{
switch(nViewID)
{
case IDD_DIALOG1: //根据新建的对话框的对话框并生成新的基于CFormView的类
pNewActiveView=(CView*)new myForm1();
break;
}
CCreateContext context;
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nViewID,
&context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
//I use the win32 based function:SetWindowLong() instead of the older style:SetWindowWord()
::SetWindowLong(pNewActiveView->m_hWnd,GWL_ID,AFX_IDW_PANE_FIRST);
this->RecalcLayout();
delete pOldActiveView;
}