如何实现分割窗口之间的相互切换
怎么实现分割窗口之间的相互切换?
用CSplitterWnd将对话框资源分成3部分,现在想让这三部分能够动态相互调换,如在程序窗口上,点击一个按钮则第1部分的窗口和第2部分的窗口进行调换,要怎么实现,代码如下
------解决思路----------------------
CSplitterWnd::DeleteRow/DeleteColumn/DeleteView()
CSplitternWnd::CreateView()
用CSplitterWnd将对话框资源分成3部分,现在想让这三部分能够动态相互调换,如在程序窗口上,点击一个按钮则第1部分的窗口和第2部分的窗口进行调换,要怎么实现,代码如下
int CTask1FinalDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialogEx::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//注册自定义的窗口类
CString strMyClass=AfxRegisterWndClass(CS_VREDRAW|CS_HREDRAW,
::LoadCursor(NULL,IDC_ARROW),
(HBRUSH)::GetStockObject(WHITE_BRUSH),
::LoadIcon(NULL,IDI_APPLICATION));
m_pMyWnd=new CFrameWnd;
m_pMyWnd->Create(strMyClass,_T(""),WS_CHILD,CRect(0,0,200,200),this);
m_pMyWnd->ShowWindow(SW_SHOW);
//创建1行两列的静态分割窗口,如果创建失败,则返回false
if(m_SplitterWnd1.CreateStatic(m_pMyWnd,1,2)==NULL)
{
return FALSE;
}
//以分割好的窗口为基础,在第2列(0,1)上创建2行1列的分割窗口
if(m_SplitterWnd2.CreateStatic(&m_SplitterWnd1,2,1,WS_CHILD|WS_VISIBLE,m_SplitterWnd1.IdFromRowCol(0,1))==NULL)
{
return FALSE;
}
//创建窗格视图
CRect rect;
GetWindowRect(&rect);
m_SplitterWnd1.CreateView(0,0,RUNTIME_CLASS(CMyFormViewOne),CSize(rect.Width()/2,rect.Height()),NULL);
m_SplitterWnd2.CreateView(0,0,RUNTIME_CLASS(CMyFormViewTwo),CSize(rect.Width()/2,rect.Height()/2),NULL);
m_SplitterWnd2.CreateView(1,0,RUNTIME_CLASS(CMyFormViewThree),CSize(rect.Width()/2,rect.Height()/2),NULL);
return 0;
}
------解决思路----------------------
CSplitterWnd::DeleteRow/DeleteColumn/DeleteView()
CSplitternWnd::CreateView()