// 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(); }