You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/DlgValStrSN.cpp

101 lines
2.5 KiB
C++

#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<CValStrSN*>(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_SnCur<m_SnMin || m_SnCur>m_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;//当前标刻次数
}