如何实现窗口的任意分割
在网上找到很多代码
但是达不到要求
要求是:
首先静态创建1行两列
然后再将第一列分成两行但是在网上找到的代码
分割条全部重叠到了最左侧
在网上找到很多代码
但是达不到要求
要求是:
首先静态创建1行两列
然后再将第一列分成两行但是在网上找到的代码
分割条全部重叠到了最左侧
解决方案 »
- 32位bmp图?
- 如何快速获得完整的“far-html”软件?
- 八叉树法建模?
- 各位VC大侠,帮帮忙.分不够可以开帖再加!
- "error LNK2001: unresolved external symbol _DirectDrawCreateEx@16"错误,程序不能编译~求救~
- directx全屏下如何实现文本输入?
- 如何设置SDI中默认菜单中的打开文件对话框内的文件类型?
- 大家快来看呀!CSDN的天大的丑闻:118+1=118 哪个SB写的SQL语句!不会小学没毕业吧?
- Csocket 如何实现多线程?
- 问题九:本人不熟悉汇编和操作系统(了解单片机),请这方面的高手指点一下
- MFC 实现ATM机的界面
- BCG界面库的使用
网上一大把的例子,本论坛里一搜也一大把,又不是三两行代码就解决问题的。很多vc的书里面都有,买一本或是网上下一本看一下就完成了。
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter2;
BOOL bSplitterWnd;CMainFrame::CMainFrame()
{
bSplitterWnd = FALSE; // 初始化为FALSE
}BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if(!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
if(!m_wndSplitter2.CreateStatic(&m_wndSplitter, 2, 1))
return FALSE; if(!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CAAView), CSize(10, 10), pContext))
return FALSE; if(!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CAAView), CSize(10, 10), pContext))
return FALSE; if(!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CAAView), CSize(10, 10), pContext))
return FALSE;
bSplitterWnd = TRUE; // 指示拆分窗口成功 return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}void CMainFrame::OnSize(UINT nType, int cx, int cy) // 主框架类的WM_SIZE消息响应函数
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if(bSplitterWnd) // 设置各个窗口的大小
{
m_wndSplitter2.SetRowInfo(0, 200, 100);
m_wndSplitter2.SetRowInfo(1, 200, 100); m_wndSplitter.SetColumnInfo(0, 300, 100);
m_wndSplitter.SetColumnInfo(1, 300, 100); m_wndSplitter2.RecalcLayout();
m_wndSplitter.RecalcLayout();
}
}
OnCreateClient函数里加上: view plaincopy to clipboardprint?
m_MySplitter.CreateStatic(this,1,2); //1行2列
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView), CSize(250, 150), pContext);
m_MySplitter.CreateView(0,1,RUNTIME_CLASS(CMyFormView), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;// CFrameWndEx::OnCreateClient(lpcs, pContext);不调用基类
m_MySplitter.CreateStatic(this,1,2); //1行2列
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView), CSize(250, 150), pContext);
m_MySplitter.CreateView(0,1,RUNTIME_CLASS(CMyFormView), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;// CFrameWndEx::OnCreateClient(lpcs, pContext);不调用基类
如果把2行1列的View再分:
view plaincopy to clipboardprint?
m_MySplitter.CreateStatic(this,2,1);
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(Ctst1View), CSize(250, 100), pContext);
m_MySplitter2.CreateStatic(&m_MySplitter,1,2,WS_CHILD|WS_VISIBLE,m_MySplitter.IdFromRowCol(1, 0));
m_MySplitter2.CreateView(0,0,RUNTIME_CLASS(Ctst1View), CSize(250, 100), pContext);
m_MySplitter2.CreateView(0,1,RUNTIME_CLASS(Ctst1View), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;//CFrameWndEx::OnCreateClient(lpcs, pContext);
OnCreateClient函数里加上: view plaincopy to clipboardprint?
m_MySplitter.CreateStatic(this,1,2); //1行2列
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView), CSize(250, 150), pContext);
m_MySplitter.CreateView(0,1,RUNTIME_CLASS(CMyFormView), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;// CFrameWndEx::OnCreateClient(lpcs, pContext);不调用基类
m_MySplitter.CreateStatic(this,1,2); //1行2列
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(CMyTreeView), CSize(250, 150), pContext);
m_MySplitter.CreateView(0,1,RUNTIME_CLASS(CMyFormView), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;// CFrameWndEx::OnCreateClient(lpcs, pContext);不调用基类
如果把2行1列的View再分:
view plaincopy to clipboardprint?
m_MySplitter.CreateStatic(this,2,1);
m_MySplitter.CreateView(0,0,RUNTIME_CLASS(Ctst1View), CSize(250, 100), pContext);
m_MySplitter2.CreateStatic(&m_MySplitter,1,2,WS_CHILD|WS_VISIBLE,m_MySplitter.IdFromRowCol(1, 0));
m_MySplitter2.CreateView(0,0,RUNTIME_CLASS(Ctst1View), CSize(250, 100), pContext);
m_MySplitter2.CreateView(0,1,RUNTIME_CLASS(Ctst1View), CSize(250, 0), pContext);
SetActiveView((CView*)m_MySplitter.GetPane(0,0));
return 1;//CFrameWndEx::OnCreateClient(lpcs, pContext);