是这样的!
我想把窗口分割成像foxmail一样(只是作个比方)
(第一列是个发收件箱树型)
(第二列包含有2行,1行是邮件,2行是邮件的内容)
也就是说分的窗口不是标准的行列数量相等,某个单独的列又有可以分成几行我现在的只能实现n行m列,在单文档,mainform.cpp的oncreateClient中这样的代码
CSplitterWndEx m_wnd1;
m_wnd1.CreateStatic(this,2,2, WS_CHILD |WS_VISIBLE);
m_wnd1.CreateView(0,0,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(0,1,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(1,0,RUNTIME_CLASS(CView3),CSize (100,100),pContext);
m_wnd1.CreateView(1,1,RUNTIME_CLASS(CView4),CSize (100,100),pContext);
请问高手有没有办法,给出相应的代码,谢谢
我想把窗口分割成像foxmail一样(只是作个比方)
(第一列是个发收件箱树型)
(第二列包含有2行,1行是邮件,2行是邮件的内容)
也就是说分的窗口不是标准的行列数量相等,某个单独的列又有可以分成几行我现在的只能实现n行m列,在单文档,mainform.cpp的oncreateClient中这样的代码
CSplitterWndEx m_wnd1;
m_wnd1.CreateStatic(this,2,2, WS_CHILD |WS_VISIBLE);
m_wnd1.CreateView(0,0,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(0,1,RUNTIME_CLASS(CView2),CSize (100,100),pContext);
m_wnd1.CreateView(1,0,RUNTIME_CLASS(CView3),CSize (100,100),pContext);
m_wnd1.CreateView(1,1,RUNTIME_CLASS(CView4),CSize (100,100),pContext);
请问高手有没有办法,给出相应的代码,谢谢
参考
http://www.vckbase.com/document/viewdoc/?id=192
创建最上层的用CreateView,创建底层的用CreateStatic
也就是说如果“某个单独的列又有可以分成几行”,那么这个列要用CreateStatic,
而如果其中的行不再划分,就用CreateView. // 创建整个区域
m_wndSplitter.CreateStatic(this, 1, 3); // 创建总框架——1区域
m_wndSplitter3.CreateStatic(&m_wndSplitter, 3, 1, WS_CHILD | WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0, 0));
// 创建总框架——2区域
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CView1), CSize(0, 0), pContext);
_pVideoPane = (CView1 *)m_wndSplitter.GetPane(0, 1);
// 创建总框架——3区域
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CView2), CSize(0, 0), pContext);
_pFormatPane = (CView2 *)m_wndSplitter.GetPane(0, 2);
// 设置区域列宽
m_wndSplitter.SetColumnInfo(0, 200, 0);
m_wndSplitter.SetColumnInfo(1, 700, 0);
m_wndSplitter.SetColumnInfo(2, 100, 0); // 创建总框架——1区域——a区域
m_wndSplitter3.CreateView(0, 0, RUNTIME_CLASS(CView3), CSize(0, 0), pContext);
_pPTZPane = (CView3 *)m_wndSplitter3.GetPane(0, 0);
// 创建总框架——1区域——b区域
m_wndSplitter3.CreateView(1, 0, RUNTIME_CLASS(CView4), CSize(0, 0),pContext);
_pCameraPane = (CView4 *)m_wndSplitter3.GetPane(1, 0);
// 创建总框架——1区域——c区域
m_wndSplitter3.CreateView(2, 0, RUNTIME_CLASS(CView5), CSize(0, 0),pContext);
_pDigitalLinePane = (CView5 *)m_wndSplitter3.GetPane(2, 0);
// 设置区域行高
m_wndSplitter3.SetRowInfo(0, 100, 0);
m_wndSplitter3.SetRowInfo(1, 300, 0);
m_wndSplitter3.SetRowInfo(2, 200, 0);