
关于VC++ 窗口分割
分割样式如下图,我的代码如下:CSplitterWndm_wndSplitter;CSplitterWndm_wndSplitter1;CSplitterWndm_wnd...
分割样式如下图,我的代码如下:
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter1;
CSplitterWnd m_wndSplitter2;
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if (m_wndSplitter1.CreateStatic(this, 1, 2)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0, 0,
RUNTIME_CLASS(CWdView),CSize(100, 100), pContext);
m_wndSplitter1.CreateView(0, 1,
RUNTIME_CLASS(CView2),CSize(100, 100), pContext);
if (m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,1))==NULL)
return FALSE;
m_wndSplitter2.CreateView(0, 0,
RUNTIME_CLASS(CWdView),CSize(100, 100), pContext);
m_wndSplitter2.CreateView(1, 0,
RUNTIME_CLASS(CView1),CSize(100, 100), pContext);
return TRUE;
}
编译没有错误,运行直接报错。
问题好像出在
if (m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,1))==NULL)
这里,但是我不知道怎样改,求助,谢谢 展开
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter1;
CSplitterWnd m_wndSplitter2;
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if (m_wndSplitter1.CreateStatic(this, 1, 2)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0, 0,
RUNTIME_CLASS(CWdView),CSize(100, 100), pContext);
m_wndSplitter1.CreateView(0, 1,
RUNTIME_CLASS(CView2),CSize(100, 100), pContext);
if (m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,1))==NULL)
return FALSE;
m_wndSplitter2.CreateView(0, 0,
RUNTIME_CLASS(CWdView),CSize(100, 100), pContext);
m_wndSplitter2.CreateView(1, 0,
RUNTIME_CLASS(CView1),CSize(100, 100), pContext);
return TRUE;
}
编译没有错误,运行直接报错。
问题好像出在
if (m_wndSplitter2.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,1))==NULL)
这里,但是我不知道怎样改,求助,谢谢 展开
2个回答
展开全部
你看一下RUNTIME_CLASS(CWdView)这个参数,貌似重复了,我印象里同一个视图不能给两个以上的窗格的。你再创建一个视图贴上去看看
最好把代码发给我
137767002@qq.com
最好把代码发给我
137767002@qq.com
展开全部
我这里有个程序,是分成4部分的,编译和运行都没错,你参考下吧:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if(m_wndSplitter1.CreateStatic(this,3,1)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCutWindowView),CSize(100,100),pContext);
m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView1),CSize(100,100),pContext);
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(1,0))==NULL)
return FALSE;
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
//return CFrameWnd::OnCreateClient(lpcs, pContext);
return TRUE;
}
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if(m_wndSplitter1.CreateStatic(this,3,1)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CCutWindowView),CSize(100,100),pContext);
m_wndSplitter1.CreateView(2,0,RUNTIME_CLASS(CView1),CSize(100,100),pContext);
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(1,0))==NULL)
return FALSE;
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),CSize(400,300),pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),CSize(400,300),pContext);
//return CFrameWnd::OnCreateClient(lpcs, pContext);
return TRUE;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询