📄 mdiframes.cpp
字号:
// MdiFrames.cpp : implementation file
//
#include "stdafx.h"
#include "TabWnd.h"
#include "MdiFrames.h"
#include "DummyTree.h"
#include "DummyList.h"
#include "DummyEdit.h"
#include "DummyForm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSimpleViewFrame
IMPLEMENT_DYNCREATE(CSimpleViewFrame, CMDIChildWnd)
CSimpleViewFrame::CSimpleViewFrame()
{
}
CSimpleViewFrame::~CSimpleViewFrame()
{
}
BEGIN_MESSAGE_MAP(CSimpleViewFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CSimpleViewFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSimpleViewFrame message handlers
BOOL CSimpleViewFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
TVisualObject *pView = new TVisualObject(1,pContext,RUNTIME_CLASS(CDummyList));
m_Framework.Add(pView);
return m_Framework.Create(this);
//return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}
void CSimpleViewFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
// TODO: Add your message handler code here
m_Framework.Destroy();
}
/////////////////////////////////////////////////////////////////////////////
// CSplitterFrame
IMPLEMENT_DYNCREATE(CSplitterFrame, CMDIChildWnd)
CSplitterFrame::CSplitterFrame()
{
}
CSplitterFrame::~CSplitterFrame()
{
}
BEGIN_MESSAGE_MAP(CSplitterFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CSplitterFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSplitterFrame message handlers
BOOL CSplitterFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// Simple splitter (1 row, 2 columns)
TVisualObject *pSplitter = new TVisualObject(1,"Test", 1, 2, pContext);
TVisualObject *pView1 = new TVisualObject(2,0,0,pContext, RUNTIME_CLASS(CDummyTree), CSize(150,0));
TVisualObject *pView2 = new TVisualObject(3,0,1,pContext, RUNTIME_CLASS(CDummyEdit), CSize(0,0));
m_Framework.Add(pSplitter);
m_Framework.Add(pSplitter, pView1);
m_Framework.Add(pSplitter, pView2);
return m_Framework.Create(this);
//return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}
void CSplitterFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
// TODO: Add your message handler code here
m_Framework.Destroy();
}
/////////////////////////////////////////////////////////////////////////////
// CSimpleTabFrame
IMPLEMENT_DYNCREATE(CSimpleTabFrame, CMDIChildWnd)
CSimpleTabFrame::CSimpleTabFrame()
{
}
CSimpleTabFrame::~CSimpleTabFrame()
{
}
BEGIN_MESSAGE_MAP(CSimpleTabFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CSimpleTabFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSimpleTabFrame message handlers
BOOL CSimpleTabFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// Simple tab with 2 panes
TVisualObject *pTab = new TVisualObject(1,"",pContext,RUNTIME_CLASS(TTabWnd));
TVisualObject *pTabView1 = new TVisualObject(2,"Cars",pContext,RUNTIME_CLASS(CDummyList));
TVisualObject *pTabView2 = new TVisualObject(3,"Fruits", pContext,RUNTIME_CLASS(CDummyTree));
m_Framework.Add(pTab);
m_Framework.Add(pTab, pTabView1);
m_Framework.Add(pTab, pTabView2);
return m_Framework.Create(this);
//return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}
void CSimpleTabFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
// TODO: Add your message handler code here
m_Framework.Destroy();
}
/////////////////////////////////////////////////////////////////////////////
// CSplitterTabFrame
IMPLEMENT_DYNCREATE(CSplitterTabFrame, CMDIChildWnd)
CSplitterTabFrame::CSplitterTabFrame()
{
}
CSplitterTabFrame::~CSplitterTabFrame()
{
}
BEGIN_MESSAGE_MAP(CSplitterTabFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CSplitterTabFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSplitterTabFrame message handlers
BOOL CSplitterTabFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// Splitter (1 row, 2 columns). Second column is a tab with 2 panes
TVisualObject *pSplitter = new TVisualObject(1,"Test", 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));
m_Framework.Add(pSplitter);
m_Framework.Add(pSplitter, pView1);
m_Framework.Add(pSplitter, pTab);
m_Framework.Add(pTab, pTabView1);
m_Framework.Add(pTab, pTabView2);
return m_Framework.Create(this);
//return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}
void CSplitterTabFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
// TODO: Add your message handler code here
m_Framework.Destroy();
}
/////////////////////////////////////////////////////////////////////////////
// CTabSplitterFrame
IMPLEMENT_DYNCREATE(CTabSplitterFrame, CMDIChildWnd)
CTabSplitterFrame::CTabSplitterFrame()
{
}
CTabSplitterFrame::~CTabSplitterFrame()
{
}
BEGIN_MESSAGE_MAP(CTabSplitterFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CTabSplitterFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTabSplitterFrame message handlers
BOOL CTabSplitterFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
// Tab. First pane is edit view. Second pane is a splitter (1 row, 2 columns)
TVisualObject *pTab = new TVisualObject(1,"",pContext,RUNTIME_CLASS(TTabWnd));
TVisualObject *pTabView1 = new TVisualObject(2,"Edit", pContext, RUNTIME_CLASS(CDummyEdit));
TVisualObject *pTabView2 = new TVisualObject(3,"Cars && Fruits", 1,2,pContext);
TVisualObject *pView1 = new TVisualObject(4,0,0,pContext, RUNTIME_CLASS(CDummyTree),CSize(100,0));
TVisualObject *pView2 = new TVisualObject(5,0,1,pContext, RUNTIME_CLASS(CDummyList),CSize(0,0));
m_Framework.Add(pTab);
m_Framework.Add(pTab, pTabView1);
m_Framework.Add(pTab, pTabView2);
m_Framework.Add(pTabView2, pView1);
m_Framework.Add(pTabView2, pView2);
return m_Framework.Create(this);
//return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}
void CTabSplitterFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
// TODO: Add your message handler code here
m_Framework.Destroy();
}
/////////////////////////////////////////////////////////////////////////////
// CComplexFrameA
IMPLEMENT_DYNCREATE(CComplexFrameA, CMDIChildWnd)
CComplexFrameA::CComplexFrameA()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -