#include "stdafx.h" #include "LaiPuLaser.h" #include "DlgValStrSN.h" #include "afxdialogex.h" #include "ValStrSN.h" #include "MsgBox.h" // CDlgValStrDate 对话框 IMPLEMENT_DYNAMIC(CDlgValStrSN, CDlgValStrBase) BEGIN_MESSAGE_MAP(CDlgValStrSN, CDlgValStrBase) ON_BN_CLICKED(IDOK,OnBnClickedOk) END_MESSAGE_MAP() CDlgValStrSN::CDlgValStrSN(CWnd* pParent /*=NULL*/) : CDlgValStrBase(CDlgValStrSN::IDD, pParent) { m_SnMin = 0;//开始序号 m_SnMax = 9999;//结束序号 m_SnCur = 1;//当前序号 m_SnInc = 1;//序号增量 m_EachMarkTimes = 1;//每个标刻次数 m_CurMarkTimes = 0;//当前标刻次数 } CDlgValStrSN::~CDlgValStrSN() { } void CDlgValStrSN::DoDataExchange(CDataExchange* pDX) { CDlgValStrBase::DoDataExchange(pDX); DDX_Text(pDX, IDC_SN_START, m_SnMin); DDX_Text(pDX, IDC_SN_END, m_SnMax); DDX_Text(pDX, IDC_SN_CUR, m_SnCur); DDX_Text(pDX, IDC_SN_INC, m_SnInc); DDX_Text(pDX, IDC_EACH_MARK_TIME, m_EachMarkTimes); DDX_Text(pDX, IDC_CUR_MARK_TIME, m_CurMarkTimes); } // CDlgValStrDate 消息处理程序 void CDlgValStrSN::DynamicCastStrBase() { m_pValStr = dynamic_cast(m_pValStrBase); } BOOL CDlgValStrSN::OnInitDialog() { CDlgValStrBase::OnInitDialog(); if(!m_bAdd && m_pValStr) { m_SnMin = m_pValStr->m_SnMin;//开始序号 m_SnMax = m_pValStr->m_SnMax;//结束序号 m_SnCur = m_pValStr->m_SnCur;//当前序号 m_SnInc = m_pValStr->m_SnInc;//序号增量 m_EachMarkTimes = m_pValStr->m_EachMarkTimes;//每个标刻次数 m_CurMarkTimes = m_pValStr->m_CurMarkTimes;//当前标刻次数 } UpdateData(FALSE); return TRUE; } void CDlgValStrSN::OnBnClickedOk() { UpdateData(TRUE); if(!CheckInput()) return; if(m_bAdd)//添加 { CValStrSN *p = new CValStrSN; SetValStrSNPar(p); m_pValString->AddValStr(p); } else//修改 { if(m_pValStr) { SetValStrSNPar(m_pValStr); } } OnOK(); } //检查输入 bool CDlgValStrSN::CheckInput() { if(m_SnCurm_SnMax) { CMsgBox MsgBox; MsgBox.Show("[当前序号]必须在[最小序号]和[最大序号]之间!",true); return false; } return true; } void CDlgValStrSN::SetValStrSNPar(CValStrSN* p) { p->m_SnMin = m_SnMin;//开始序号 p->m_SnMax = m_SnMax;//结束序号 p->m_SnCur = m_SnCur-m_SnInc;//当前序号 p->m_SnInc = m_SnInc;//序号增量 p->m_EachMarkTimes = m_EachMarkTimes;//每个标刻次数 p->m_CurMarkTimes = m_CurMarkTimes;//当前标刻次数 }