怎么把分割后的窗口复原呢? 我用CSplitterWnd把窗口分成了2个部分,然后我想让窗口回到以前没有被分割的样子,应该怎么实现呢?分割的方法也要做相应改变啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public : BOOL m_bSplitter; //菜单check状态 CSplitterWnd *m_pwndSplitter; //指针//以上两个变量要在框架创建时初始化为FALSE和NULL#define VIEW_SINGLE 0void CMainFrame::OnViewSplitter() { CView *pOldView; CCreateContext context; if( m_bSplitter ) { pOldView = (CView *)GetDlgItem(VIEW_SINGLE); ASSERT( m_pwndSplitter ); ASSERT( pOldView ); pOldView->ShowWindow(SW_SHOW); m_pwndSplitter->ShowWindow(SW_HIDE); m_bSplitter = !m_bSplitter; return; } if(m_pwndSplitter == NULL) { context.m_pCurrentDoc = GetActiveDocument(); m_pwndSplitter = (CMyWndSplitter *) new CMyWndSplitter; // TODO: Add your command handler code here if(!m_pwndSplitter->CreateStatic(this,1,2)) { TRACE0("Failed to Create Left StaticSplitter\n"); return ; } if(!m_pwndSplitter->CreateView(0,0,RUNTIME_CLASS(CSdiTestView),CSize(150,100),&context)) { TRACE0("Failed to create left first pane\n"); return ; } if(!m_pwndSplitter->CreateView(0,1,RUNTIME_CLASS(CMyTreeView),CSize(150,100),&context)) { TRACE0("Failed to create left first pane\n"); return ; } } pOldView = GetActiveView(); ASSERT( pOldView ); m_pwndSplitter->ShowWindow(SW_SHOW); pOldView->ShowWindow(SW_HIDE); pOldView->SetDlgCtrlID(VIEW_SINGLE); RecalcLayout(); m_bSplitter = !m_bSplitter; }void CMainFrame::OnUpdateViewSplitter(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck( m_bSplitter );}//代码我已试过,没问题的。 还有就是别忘了框架销毁时要检查m_pwndSplitter如果不为NULL要释放 Detour 2.1 为什么不能Hook Process32Next这个函数呢? 如何在Edit中编程实现Home,End,PageUP(Down),删除一个Word(词)和删除一行的功能? 怎么让Combo里的各数值不排序 javascript中的正则表达式对象用的哪个COM? 高手请帮忙介绍一下制作ocx(b/s结构)的简单例子 超级简单的三个问题,请教。 单文档多视图的实现 关于socket的问题?? 谁能解释一下“#”的用法!? VS2010和VS2015变量字节数问题 为什么框架窗口无法处理键盘事件??? 怎样将一个GDI+的Bitmap对象绘制到对话框上?
BOOL m_bSplitter; //菜单check状态
CSplitterWnd *m_pwndSplitter; //指针
//以上两个变量要在框架创建时初始化为FALSE和NULL
#define VIEW_SINGLE 0
void CMainFrame::OnViewSplitter()
{
CView *pOldView;
CCreateContext context; if( m_bSplitter )
{
pOldView = (CView *)GetDlgItem(VIEW_SINGLE);
ASSERT( m_pwndSplitter );
ASSERT( pOldView );
pOldView->ShowWindow(SW_SHOW);
m_pwndSplitter->ShowWindow(SW_HIDE);
m_bSplitter = !m_bSplitter;
return;
}
if(m_pwndSplitter == NULL)
{
context.m_pCurrentDoc = GetActiveDocument();
m_pwndSplitter = (CMyWndSplitter *) new CMyWndSplitter;
// TODO: Add your command handler code here
if(!m_pwndSplitter->CreateStatic(this,1,2))
{
TRACE0("Failed to Create Left StaticSplitter\n");
return ;
}
if(!m_pwndSplitter->CreateView(0,0,RUNTIME_CLASS(CSdiTestView),CSize(150,100),&context))
{
TRACE0("Failed to create left first pane\n");
return ;
}
if(!m_pwndSplitter->CreateView(0,1,RUNTIME_CLASS(CMyTreeView),CSize(150,100),&context))
{
TRACE0("Failed to create left first pane\n");
return ;
}
}
pOldView = GetActiveView();
ASSERT( pOldView );
m_pwndSplitter->ShowWindow(SW_SHOW);
pOldView->ShowWindow(SW_HIDE);
pOldView->SetDlgCtrlID(VIEW_SINGLE); RecalcLayout(); m_bSplitter = !m_bSplitter; }void CMainFrame::OnUpdateViewSplitter(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck( m_bSplitter );
}//代码我已试过,没问题的。