切割后的视图中如何进行视图切换 有三个切割区域a,b,cb中要进行两个试图的切换,如何实现?谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 m_wndSplitter.DeleteView(0,1); //删除某个位置的视图再重新建立 m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CAlterPersonView),CSize(0,0),NULL); m_wndSplitter.RecalcLayout(); 那就直接用CYourView *pview = (CYourView *)m_wndSplitter.GetPane();pview->ShowWindow(SW_HIDE);//试试 http://community.csdn.net/Expert/topic/3514/3514406.xml?temp=.8678705 其实deleteview的效果就是把一个视图和某个位置取消关联,用的都是你先单独创建好的试图,我一直是这么用。 如果来回切换的话在又显示的过程中用CreateView是不是有创建了一次? http://www.codeguru.com/Cpp/W-D/splitter/article.php/c1549/ BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { VERIFY(m_Spliter.CreateStatic(this, 1, 2));//创建左视图 VERIFY(m_Spliter.CreateView(0, 0, RUNTIME_CLASS(CLeftView1), CSize(800, 0), pContext)); m_pLeftView1 = (CLeftView1 *)m_Spliter.GetPane(0, 0);//创建右视图 VERIFY(m_Spliter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(0, 0), pContext)); m_pRightView = (CRightView *)m_Spliter1.GetPane(0, 1);//改变左视图ID m_pLeftView1->SetDlgCtrlID( max ( m_pLeftView1->GetDlgCtrlID(), m_pRightView->GetDlgCtrlID() ) +1); m_pLeftView1->ShowWindow(SW_HIDE);//以第二个视类创建左视图 VERIFY(m_Spliter.CreateView(0, 0, RUNTIME_CLASS(CLeftView2), CSize(800, 0), pContext)); m_pLeftView2 = (CLeftView2 *)m_Spliter.GetPane(0, 0); return true;}//以下函数切换左视图void CMainFrame::ChangeView() {//以从1转换到2为例 int lId = m_pLeftView2->SetDlgCtrlID(m_pLeftView1->GetDlgCtrlID()); m_pLeftView1->SetDlgCtrlID(lId); m_pLeftView1->ShowWindow(SW_HIDE); m_pLeftView2->ShowWindow(SW_SHOW); m_pLeftView2->SetFocus(); m_Spliter.RecalcLayout();} 请介绍一些已经封装directx9的库 怎样用VC编写一个登陆界面 使用winInet编程,实现删除ftp上的文件夹和文件,請問代码应该怎样修改为好?? 怎样在进程函数中修改单文档的列表视图的标题? 怎样从CMainFrm中获得视图指针? 辞职了找工作!各位关注一下---- 在对ActiveX控件添加属性的时候,遇到一个问题 WSAAsyncSelect中的FD_WRITE有什么用啊? 如何避免一个应用程序多次运行? 讲解一下UNICODE,它和ASCII有什么不同.我很糊涂. 关于:怎样传递一个已经打开的excel文件给ocx组件? 请问如何在dialogbar类中获得文档类的指针阿
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CAlterPersonView),CSize(0,0),NULL);
m_wndSplitter.RecalcLayout();
CYourView *pview = (CYourView *)m_wndSplitter.GetPane();
pview->ShowWindow(SW_HIDE);//试试
{
VERIFY(m_Spliter.CreateStatic(this, 1, 2));
//创建左视图
VERIFY(m_Spliter.CreateView(0, 0, RUNTIME_CLASS(CLeftView1), CSize(800, 0), pContext));
m_pLeftView1 = (CLeftView1 *)m_Spliter.GetPane(0, 0);
//创建右视图
VERIFY(m_Spliter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(0, 0), pContext));
m_pRightView = (CRightView *)m_Spliter1.GetPane(0, 1);
//改变左视图ID
m_pLeftView1->SetDlgCtrlID( max ( m_pLeftView1->GetDlgCtrlID(),
m_pRightView->GetDlgCtrlID() ) +1);
m_pLeftView1->ShowWindow(SW_HIDE);
//以第二个视类创建左视图
VERIFY(m_Spliter.CreateView(0, 0, RUNTIME_CLASS(CLeftView2), CSize(800, 0), pContext));
m_pLeftView2 = (CLeftView2 *)m_Spliter.GetPane(0, 0);
return true;
}
//以下函数切换左视图
void CMainFrame::ChangeView()
{//以从1转换到2为例
int lId = m_pLeftView2->SetDlgCtrlID(m_pLeftView1->GetDlgCtrlID());
m_pLeftView1->SetDlgCtrlID(lId);
m_pLeftView1->ShowWindow(SW_HIDE);
m_pLeftView2->ShowWindow(SW_SHOW);
m_pLeftView2->SetFocus();
m_Spliter.RecalcLayout();
}