MFC Visual Framework
A Visual Framework (Views, Tabs and Splitters)
https://www.codeproject.com/Articles/190/A-Visual-Framework-Views-Tabs-and-Splitters
BOOL CSplitterTabFrame::OnCreateClient(LPCREATESTRUCT lpcs,
CCreateContext *pContext)
{
// m_Framework is a member of CSplitterTabFrame class
(derived from CMDIChildWnd)
// Splitter (1 row, 2 columns). Second column is a tab with 2 panes
TVisualObject *pSplitter = new TVisualObject(1, "", 1, 2, pContext);
TVisualObject *pView1 = new TVisualObject(2, 0,0,pContext,
RUNTIME_CLASS(CDummyTree), CSize(150,0));
TVisualObject *pTab = new TVisualObject(3, 0,1,pContext,
RUNTIME_CLASS(TTabWnd), CSize(0,0));
TVisualObject *pTabView1 = new TVisualObject(4, "Cars",pContext,
RUNTIME_CLASS(CDummyList));
TVisualObject *pTabView2 = new TVisualObject(5, "Fruits", pContext,
RUNTIME_CLASS(CDummyTree));
// Define tab icons [NEW]
pTabView1->SetIcon(IDI_ICON_A);
pTabView2->SetIcon(IDI_ICON_A);
// Add all visual objects to the framework
m_Framework.Add(pSplitter);
m_Framework.Add(pSplitter, pView1);
m_Framework.Add(pSplitter, pTab);
m_Framework.Add(pTab, pTabView1);
m_Framework.Add(pTab, pTabView2);
// Create the framework and all windows
return m_Framework.Create(this);
}
Here is a list of supported features:
整体是 pSplitter ,然后 pSplitter 分为 1行2列,
0,0 是 pView1
0,1 是 pTab
pTab 有分别添加了pTabView1 和pTabView2 两个选项卡