121 lines
2.7 KiB
C++
121 lines
2.7 KiB
C++
// Step.cpp : implementation file
|
|
//
|
|
#include "stdafx.h"
|
|
#include "Resource.h"
|
|
#include "StepDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
int CStepDlg::m_nCount = 3;
|
|
CString CStepDlg::m_strWidth = _T("300");
|
|
CString CStepDlg::m_strHeight = _T("150");
|
|
CString CStepDlg::m_strAllHeight = _T("450");
|
|
CString CStepDlg::m_strElevation = _T("0");
|
|
BOOL CStepDlg::m_bTop = TRUE;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CStepDlg dialog
|
|
IMPLEMENT_DYNAMIC(CStepDlg, GlwCAcUiDialog)
|
|
CStepDlg::CStepDlg(CWnd* pParent /*=NULL*/)
|
|
: GlwCAcUiDialog(CStepDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CStepDlg)
|
|
m_bIsDownStep = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
m_bTop = TRUE;
|
|
}
|
|
|
|
|
|
void CStepDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CStepDlg)
|
|
DDX_Control(pDX, IDC_SPIN_NUM, m_cSpin);
|
|
DDX_Control(pDX, IDC_STEP_HEIGHT, m_ctrlHeight);
|
|
DDX_Text(pDX, IDC_STEP_WIDTH, m_strWidth);
|
|
DDX_Text(pDX, IDC_STEP_HEIGHT, m_strHeight);
|
|
DDX_Text(pDX, IDC_STEP_COUNT, m_nCount);
|
|
DDX_Text(pDX, IDC_OVERALL_HEIGHT, m_strAllHeight);
|
|
DDX_Text(pDX, IDC_ELEVATION, m_strElevation);
|
|
DDX_Check(pDX, IDC_DOWN_STEP, m_bIsDownStep);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CStepDlg, GlwCAcUiDialog)
|
|
//{{AFX_MSG_MAP(CStepDlg)
|
|
ON_BN_CLICKED(IDC_TOPBASE, OnTopbase)
|
|
ON_BN_CLICKED(IDC_BOTTOMBASE, OnBottombase)
|
|
ON_EN_KILLFOCUS(IDC_STEP_HEIGHT, OnKillfocusStepHeight)
|
|
ON_EN_KILLFOCUS(IDC_OVERALL_HEIGHT, OnKillfocusOverallHeight)
|
|
ON_BN_CLICKED(IDC_DOWN_STEP, OnDownStep)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CStepDlg message handlers
|
|
|
|
BOOL CStepDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
if (m_bTop)
|
|
{
|
|
CButton *pButton1 = (CButton *)GetDlgItem(IDC_TOPBASE);
|
|
pButton1->SetCheck(1);
|
|
}
|
|
else
|
|
{
|
|
CButton *pButton2 = (CButton *)GetDlgItem(IDC_BOTTOMBASE);
|
|
pButton2->SetCheck(1);
|
|
}
|
|
m_cSpin.SetBuddy(GetDlgItem(IDC_STEP_COUNT));
|
|
m_cSpin.SetRange(0,100);
|
|
UpdateData(false);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CStepDlg::OnTopbase()
|
|
{
|
|
m_bTop = TRUE;
|
|
}
|
|
|
|
void CStepDlg::OnBottombase()
|
|
{
|
|
m_bTop = FALSE;
|
|
}
|
|
|
|
void CStepDlg::OnKillfocusStepHeight()
|
|
{
|
|
updateEdit();
|
|
}
|
|
|
|
void CStepDlg::updateEdit()
|
|
{
|
|
UpdateData(true);
|
|
m_nCount = (int) (_tstof(m_strAllHeight) / _tstof(m_strHeight) + 0.5);
|
|
m_strHeight.Format(_T("%.2f"), _tstof(m_strAllHeight) / m_nCount );
|
|
UpdateData(false);
|
|
}
|
|
|
|
void CStepDlg::OnKillfocusOverallHeight()
|
|
{
|
|
updateEdit();
|
|
}
|
|
|
|
void CStepDlg::OnOK()
|
|
{
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
|
|
void CStepDlg::OnDownStep()
|
|
{
|
|
UpdateData();
|
|
}
|