如何把窗口分割成如下:

mgwms 2003-08-18 03:23:01
--------------------
| | 2 |
| | |
| 1 |-------------
| | |
| | 3 |
| | |
| | |
--------------------
...全文
35 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
西江残月 2003-08-18
  • 打赏
  • 举报
回复
呵呵,来晚了啊!应该解决了吧!
doublesword 2003-08-18
  • 打赏
  • 举报
回复
头文件中:
CSplitterWnd m_wndSplitter1,m_wndSplitter2;

CPP中:
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))
return FALSE;

if(!m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(150,0),pContext))
{
TRACE("CreateView() return FALSE!\n");
return FALSE;
}
if(!m_wndSplitter2.CreateStatic(&m_wndSplitter1,2,1,
WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0,1)))
{
TRACE("m_wndSplitter2.CreateStatic() return FALSE!\n");
return FALSE;
}

if(!m_wndSplitter2.CreateView(0, 0, pContext->m_pNewViewClass, CSize(100, 0), pContext))
{
m_wndSplitter1.DestroyWindow();
return FALSE;
}

if(!m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CBottomView),CSize(0,0),pContext))
{
TRACE("CreateView() return FALSE!\n");
return FALSE;
}

return TRUE;
// return CFrameWnd::OnCreateClient(lpcs, pContext);
}
rockabyzzz 2003-08-18
  • 打赏
  • 举报
回复
先分左右,再分上下……
xundeng 2003-08-18
  • 打赏
  • 举报
回复
CSplitterWnd m_wndSplitter1; //(1,2)
CSplitterWnd m_wndSplitter2; //(2,1 )


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))
return FALSE;

if(!m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CMyTreeView),CSize(50,50),pContext))
{
TRACE("CreateView() return FALSE!\n");
return FALSE;
}
if(!m_wndSplitter2.CreateStatic(&m_wndSplitter1,2,1,
WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0,1)))
{
TRACE("m_wndSplitter2.CreateStatic() return FALSE!\n");
return FALSE;
}

if(!m_wndSplitter2.CreateView(0, 0, pContext->m_pNewViewClass, CSize(100, 0), pContext))
{
m_wndSplitter1.DestroyWindow();
return FALSE;
}

if(!m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CMyFormView),CSize(50,50),pContext))
{
TRACE("CreateView() return FALSE!\n");
return FALSE;
}

// Set the default sizes for the splitter panes.
CRect r;
GetClientRect(&r);
m_wndSplitter1.SetColumnInfo( 0, r.Width()/5, 0 );
m_wndSplitter2.SetRowInfo(0,r.Width(), 0 );
m_wndSplitter1.RecalcLayout();

m_wndSplitter1.SetActivePane(0, 0);
m_pMyTreeView = (CMyTreeView *)GetActiveView();

m_wndSplitter2.SetActivePane(0, 0);
m_pMyEditView = (CChatCView *)GetActiveView();

m_wndSplitter2.SetActivePane(1, 0);
m_pMyFormView = (CMyFormView *)GetActiveView();

return TRUE;
return CFrameWnd::OnCreateClient(lpcs, pContext);
}
mct1025 2003-08-18
  • 打赏
  • 举报
回复
视图分割源代码:outlook_style
http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=507&page=2
视图分割与停靠

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧