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

192 lines
5.4 KiB
C++

// ResizingPropPage.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "ResizingPropPage.h"
#include "OXLayoutManager.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
#define OX_OFFSET (7)
IMPLEMENT_DYNCREATE(CResizingPropPage1, CPropertyPage)
IMPLEMENT_DYNCREATE(CResizingPropPage2, CPropertyPage)
/////////////////////////////////////////////////////////////////////////////
// CResizingPropPage1 property page
CResizingPropPage1::CResizingPropPage1() : CPropertyPage(CResizingPropPage1::IDD)
{
//{{AFX_DATA_INIT(CResizingPropPage1)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pLayoutManager = NULL;
}
CResizingPropPage1::~CResizingPropPage1()
{
if (m_pLayoutManager != NULL)
delete m_pLayoutManager;
}
void CResizingPropPage1::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CResizingPropPage1)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResizingPropPage1, CPropertyPage)
//{{AFX_MSG_MAP(CResizingPropPage1)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CResizingPropPage1::OnSetActive()
{
if (m_pLayoutManager == NULL)
{
if ((m_pLayoutManager = new COXLayoutManager(this)) != NULL)
{
ASSERT_VALID(m_pLayoutManager);
//
// Setup constraints
m_pLayoutManager->SetConstraint(IDC_FRAME, OX_LMS_TOP | OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET);
m_pLayoutManager->SetConstraint(IDC_FRAME, OX_LMS_BOTTOM | OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET);
m_pLayoutManager->SetConstraint(IDC_EDIT, OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_EDIT, OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_LIST, OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_LIST, OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_LIST, OX_LMS_TOP, OX_LMT_OPPOSITE, OX_OFFSET, IDC_EDIT);
m_pLayoutManager->SetConstraint(IDC_LIST, OX_LMS_BOTTOM, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
}
//
// Insert some data into the listbox control
TCHAR szBuffer[10];
int i = 0;
for (; i < 100; i++)
{
wsprintf(szBuffer, _T("Item #%d"), i);
GetDlgItem(IDC_LIST)->SendMessage(LB_INSERTSTRING, i, (LPARAM)(LPCTSTR) szBuffer);
}
m_pLayoutManager->RedrawLayout();
}
return CPropertyPage::OnSetActive();
}
/////////////////////////////////////////////////////////////////////////////
// CResizingPropPage2 property page
CResizingPropPage2::CResizingPropPage2() : CPropertyPage(CResizingPropPage2::IDD)
{
//{{AFX_DATA_INIT(CResizingPropPage2)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pLayoutManager = NULL;
}
CResizingPropPage2::~CResizingPropPage2()
{
if (m_pLayoutManager != NULL)
delete m_pLayoutManager;
}
void CResizingPropPage2::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CResizingPropPage2)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResizingPropPage2, CPropertyPage)
//{{AFX_MSG_MAP(CResizingPropPage2)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CResizingPropPage2::OnSetActive()
{
if (m_pLayoutManager == NULL)
{
if ((m_pLayoutManager = new COXLayoutManager(this)) != NULL)
{
ASSERT_VALID(m_pLayoutManager);
//
// Setup constraints
m_pLayoutManager->SetConstraint(IDC_FRAME, OX_LMS_TOP | OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET);
m_pLayoutManager->SetConstraint(IDC_FRAME, OX_LMS_BOTTOM | OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET);
m_pLayoutManager->SetConstraint(IDC_EDIT, OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_EDIT, OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_TREE, OX_LMS_LEFT, OX_LMT_SAME, OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_TREE, OX_LMS_RIGHT, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
m_pLayoutManager->SetConstraint(IDC_TREE, OX_LMS_TOP, OX_LMT_OPPOSITE, OX_OFFSET, IDC_EDIT);
m_pLayoutManager->SetConstraint(IDC_TREE, OX_LMS_BOTTOM, OX_LMT_SAME, -OX_OFFSET, IDC_FRAME);
}
//
// Insert some data into the CTreeCtrl
//
CTreeCtrl* pTree = (CTreeCtrl*) GetDlgItem(IDC_TREE);
if (pTree != NULL)
{
HTREEITEM hItem = pTree->InsertItem(_T("Root"));
TCHAR szBuffer[10];
for (int i = 0; i < 100; i++)
{
wsprintf(szBuffer, _T("Item #%d"), i);
pTree->InsertItem(szBuffer, hItem);
}
pTree->ModifyStyle(NULL, TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS);
pTree->Expand(hItem, TVE_EXPAND);
}
m_pLayoutManager->RedrawLayout();
}
return CPropertyPage::OnSetActive();
}
BOOL CResizingPropPage1::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,NULL,NULL,
AfxGetApp()->LoadIcon(IDR_LAYOUTTYPE));
ASSERT(cs.lpszClass);
return CPropertyPage::PreCreateWindow(cs);
}
BOOL CResizingPropPage2::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,NULL,NULL,
AfxGetApp()->LoadIcon(IDR_LAYOUTTYPE));
ASSERT(cs.lpszClass);
return CPropertyPage::PreCreateWindow(cs);
}