2025-11-27 16:46:48 +09:00

136 lines
3.4 KiB
C++

// ==========================================================================
// Class Implementation : CSplitChildFrame
// ==========================================================================
// Source file : SplitChildFrm.cpp
//====================================================================
//=============== Dundas Software ==================================
// //////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "WorkspaceDemo.h"
#include <afxpriv.h> // For CDialogTemplate
#include "SplitChildFrm.h"
#include "WorkspaceGraphView.h"
#include "WorkspaceGraphPropView.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CSplitChildFrame, CMDIChildWnd)
#define new DEBUG_NEW
/////////////////////////////////////////////////////////////////////////////
// Definition of static members
// Data members -------------------------------------------------------------
// protected:
// private:
// Member functions ---------------------------------------------------------
// public:
CSplitChildFrame::CSplitChildFrame()
{
ASSERT_VALID(this);
}
BEGIN_MESSAGE_MAP(CSplitChildFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CSplitChildFrame)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CSplitChildFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
// create a splitter with 1 row, 2 columns
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
TRACE0("CSplitChildFrame::OnCreateClient : Failed to CreateStaticSplitter\n");
return FALSE;
}
// Get the size of the first pane (size of the resource)
CSize firstSize(0,0);
CSize secondSize(0,0);
// Block : Dialog template
{
CDialogTemplate dlgTempl1;
VERIFY(dlgTempl1.Load(MAKEINTRESOURCE(CWorkspaceGraphView::IDD)));
dlgTempl1.GetSizeInPixels(&firstSize);
CDialogTemplate dlgTempl2;
VERIFY(dlgTempl2.Load(MAKEINTRESOURCE(CWorkspaceGraphPropView::IDD)));
dlgTempl2.GetSizeInPixels(&secondSize);
// Make same width and height
if (firstSize.cx < secondSize.cx)
firstSize.cx = secondSize.cx;
else
secondSize.cx = firstSize.cx;
if (firstSize.cy < secondSize.cy)
firstSize.cy = secondSize.cy;
else
secondSize.cy = firstSize.cy;
}
// add the first splitter pane - the default view in column 0
if (!m_wndSplitter.CreateView(0, 0,
pContext->m_pNewViewClass, firstSize, pContext))
{
TRACE0("CSplitChildFrame::OnCreateClient : Failed to create first pane\n");
return FALSE;
}
// add the second splitter pane - an property view in column 1
if (!m_wndSplitter.CreateView(0, 1,
RUNTIME_CLASS(CWorkspaceGraphPropView), secondSize, pContext))
{
TRACE0("CSplitChildFrame::OnCreateClient : Failed to create second pane\n");
return FALSE;
}
// activate the tree view
SetActiveView((CView*)m_wndSplitter.GetPane(0,0));
return TRUE;
}
BOOL CSplitChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CMDIChildWnd::PreCreateWindow(cs);
}
#ifdef _DEBUG
void CSplitChildFrame::AssertValid() const
{
CMDIChildWnd::AssertValid();
}
void CSplitChildFrame::Dump(CDumpContext& dc) const
{
CMDIChildWnd::Dump(dc);
}
#endif //_DEBUG
CSplitChildFrame::~CSplitChildFrame()
{
}
// protected:
// private:
// ==========================================================================