📄 dlglocalpara.cpp
字号:
// DlgLocalPara.cpp : implementation file
//
#include "stdafx.h"
#include "maintain.h"
#include "DlgLocalPara.h"
#include "DlgAcuPara.h"
#include "public.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern char *unit[];
/////////////////////////////////////////////////////////////////////////////
// CDlgLocalPara property page
IMPLEMENT_DYNCREATE(CDlgLocalPara, CPropertyPage)
CDlgLocalPara::CDlgLocalPara() : CPropertyPage(CDlgLocalPara::IDD)
{
//{{AFX_DATA_INIT(CDlgLocalPara)
m_Com1_yc = FALSE;
m_Com2_yc = FALSE;
m_Com3_yc = FALSE;
m_AllowMaxLimitAlarm = FALSE;
m_LingDian = 0;
m_MaxLimit = 0;
m_MinLimit = 0;
m_DecimalPoint = 0;
m_TopValue = 0;
m_Xishu = 0;
m_YcName = _T("");
m_Point1_yc = 0;
m_Point2_yc = 0;
m_CaiYang = -1;
m_AllowMaxLimitAlarm = FALSE;
m_Com1_yx = FALSE;
m_Com2_yx = FALSE;
m_Com3_yx = FALSE;
m_Point1Allow = FALSE;
m_Point2Allow = FALSE;
m_YxName = _T("");
m_Point1_yx = 0;
m_Point2_yx = 0;
m_ActionAlarm = -1;
m_AlarmName = _T("");
m_Voice1 = 0;
//}}AFX_DATA_INIT
}
CDlgLocalPara::~CDlgLocalPara()
{
}
void CDlgLocalPara::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgLocalPara)
DDX_Control(pDX, IDC_COMBO_YC_NO, m_YcNo);
DDX_Control(pDX, IDC_COMBO_UNIT, m_Unit);
DDX_Check(pDX, IDC_CHECK_COM1, m_Com1_yc);
DDX_Check(pDX, IDC_CHECK_COM2, m_Com2_yc);
DDX_Check(pDX, IDC_CHECK_COM3, m_Com3_yc);
DDX_Check(pDX, IDC_CHECK_MAXLIMIT_ALLOW, m_AllowMaxLimitAlarm);
DDX_Check(pDX, IDC_CHECK_MINLIMIT_ALLOW, m_AllowMinLimitAlarm);
DDX_Text(pDX, IDC_EDIT_LINGDIAN, m_LingDian);
DDX_Text(pDX, IDC_EDIT_MAXLIMIT, m_MaxLimit);
DDX_Text(pDX, IDC_EDIT_MINLIMIT, m_MinLimit);
DDX_Text(pDX, IDC_EDIT_POINT, m_DecimalPoint);
DDX_Text(pDX, IDC_EDIT_TOPVALUE, m_TopValue);
DDX_Text(pDX, IDC_EDIT_XISHU, m_Xishu);
DDX_Text(pDX, IDC_EDIT_YC_NAME, m_YcName);
DDV_MaxChars(pDX, m_YcName, 17);
DDX_Text(pDX, IDC_EDIT_POINT1, m_Point1_yc);
DDX_Text(pDX, IDC_EDIT_POINT2, m_Point2_yc);
DDX_Radio(pDX, IDC_RADIO_JIAOLIU, m_CaiYang);
DDX_Control(pDX, IDC_COMBO_YX_NO, m_YxNo);
DDX_Check(pDX, IDC_CHECK_COM4, m_Com1_yx);
DDX_Check(pDX, IDC_CHECK_COM5, m_Com2_yx);
DDX_Check(pDX, IDC_CHECK_COM6, m_Com3_yx);
DDX_Check(pDX, IDC_CHECK_POINT_ALLOW, m_Point1Allow);
DDX_Check(pDX, IDC_CHECK_POINT1_ALLOW, m_Point2Allow);
DDX_Text(pDX, IDC_EDIT_YX_NAME, m_YxName);
DDV_MaxChars(pDX, m_YxName, 17);
DDX_Text(pDX, IDC_EDIT_POINT3, m_Point1_yx);
DDX_Text(pDX, IDC_EDIT_POINT4, m_Point2_yx);
DDX_Radio(pDX, IDC_RADIO_ACTION_ALARM, m_ActionAlarm);
DDX_Control(pDX, IDC_COMBO_ALARMLEVEL2, m_AlarmLevel);
DDX_Control(pDX, IDC_COMBO_ALARM_NO, m_AlarmNo);
DDX_Text(pDX, IDC_EDIT_ALARM_NAME, m_AlarmName);
DDV_MaxChars(pDX, m_AlarmName, 20);
DDX_Text(pDX, IDC_EDIT_ALARM_VOICE1, m_Voice1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgLocalPara, CPropertyPage)
//{{AFX_MSG_MAP(CDlgLocalPara)
ON_CBN_SELENDOK(IDC_COMBO_UNIT, OnSelendokComboUnit)
ON_CBN_SELENDOK(IDC_COMBO_YC_NO, OnSelendokComboYcNo)
ON_EN_CHANGE(IDC_EDIT_YC_NAME, OnChangeEditYcName)
ON_EN_CHANGE(IDC_EDIT_XISHU, OnChangeEditXishu)
ON_BN_CLICKED(IDC_RADIO_JIAOLIU, OnRadioJiaoliu)
ON_BN_CLICKED(IDC_RADIO_ZHILIU, OnRadioZhiliu)
ON_EN_CHANGE(IDC_EDIT_LINGDIAN, OnChangeEditLingdian)
ON_EN_CHANGE(IDC_EDIT_TOPVALUE, OnChangeEditTopvalue)
ON_EN_CHANGE(IDC_EDIT_POINT, OnChangeEditPoint)
ON_EN_CHANGE(IDC_EDIT_MAXLIMIT, OnChangeEditMaxlimit)
ON_EN_CHANGE(IDC_EDIT_MINLIMIT, OnChangeEditMinlimit)
ON_EN_CHANGE(IDC_EDIT_POINT1, OnChangeEditPoint1)
ON_EN_CHANGE(IDC_EDIT_POINT2, OnChangeEditPoint2)
ON_BN_CLICKED(IDC_CHECK_MAXLIMIT_ALLOW, OnCheckMaxlimitAllow)
ON_BN_CLICKED(IDC_CHECK_MINLIMIT_ALLOW, OnCheckMinlimitAllow)
ON_BN_CLICKED(IDC_CHECK_COM1, OnCheckCom1)
ON_BN_CLICKED(IDC_CHECK_COM2, OnCheckCom2)
ON_BN_CLICKED(IDC_CHECK_COM3, OnCheckCom3)
ON_CBN_SELENDOK(IDC_COMBO_YX_NO, OnSelendokComboYxNo)
ON_EN_CHANGE(IDC_EDIT_YX_NAME, OnChangeEditYxName)
ON_BN_CLICKED(IDC_RADIO_ACTION_ALARM, OnRadioActionAlarm)
ON_BN_CLICKED(IDC_RADIO_STATUS_ALARM, OnRadioStatusAlarm)
ON_EN_CHANGE(IDC_EDIT_POINT3, OnChangeEditPoint3)
ON_EN_CHANGE(IDC_EDIT_POINT4, OnChangeEditPoint4)
ON_BN_CLICKED(IDC_CHECK_POINT_ALLOW, OnCheckPointAllow)
ON_BN_CLICKED(IDC_CHECK_POINT1_ALLOW, OnCheckPoint1Allow)
ON_BN_CLICKED(IDC_CHECK_COM4, OnCheckCom4)
ON_BN_CLICKED(IDC_CHECK_COM5, OnCheckCom5)
ON_BN_CLICKED(IDC_CHECK_COM6, OnCheckCom6)
ON_CBN_SELENDOK(IDC_COMBO_ALARM_NO, OnSelendokComboAlarmNo)
ON_EN_CHANGE(IDC_EDIT_ALARM_NAME, OnChangeEditAlarmName)
ON_CBN_SELENDOK(IDC_COMBO_ALARMLEVEL2, OnSelendokComboAlarmlevel2)
ON_EN_CHANGE(IDC_EDIT_ALARM_VOICE1, OnChangeEditAlarmVoice1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgLocalPara message handlers
void CDlgLocalPara::RefreshData()
{
int nCurSel = m_YcNo.GetCurSel();
m_YcName = p.LOCAL_Coe.YC_Coe[nCurSel].Name;
m_Xishu = p.LOCAL_Coe.YC_Coe[nCurSel].Coe;
m_TopValue = p.LOCAL_Coe.YC_Coe[nCurSel].Scale;
m_LingDian = p.LOCAL_Coe.YC_Coe[nCurSel].Zero;
m_Unit.SetCurSel(-1);
for(int i=0;i<4;i++)
{
if(strcmp(unit[i],p.LOCAL_Coe.YC_Coe[nCurSel].Unit)==0)
m_Unit.SetCurSel(i);
}
m_DecimalPoint = BYTE(p.LOCAL_Coe.YC_Coe[nCurSel].Dot);
m_MaxLimit = p.LOCAL_Coe.YC_Coe[nCurSel].UpperLimit;
m_MinLimit = p.LOCAL_Coe.YC_Coe[nCurSel].UnderLimit;
m_Point1_yc = p.LOCAL_Coe.YC_Coe[nCurSel].UpperPtr;
m_Point2_yc = p.LOCAL_Coe.YC_Coe[nCurSel].UnderPtr;
m_Com1_yc = (p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x01)?true:false;
m_Com2_yc =( p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x02)?true:false;
m_Com3_yc = (p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x04)?true:false;
m_CaiYang = (p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x08)?true:false;
m_AllowMinLimitAlarm = (p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x40)?true:false;
((CEdit*)GetDlgItem(IDC_EDIT_POINT2))->EnableWindow(m_AllowMinLimitAlarm);
m_AllowMaxLimitAlarm = (p.LOCAL_Coe.YC_Coe[nCurSel].Control&0x80)?true:false;
((CEdit*)GetDlgItem(IDC_EDIT_POINT1))->EnableWindow(m_AllowMaxLimitAlarm);
nCurSel = m_YxNo.GetCurSel();
m_YxName = p.LOCAL_Coe.YX_Coe[nCurSel].Name;
m_Point1_yx = p.LOCAL_Coe.YX_Coe[nCurSel].OnPtr;
m_Point2_yx = p.LOCAL_Coe.YX_Coe[nCurSel].OffPtr;
m_Com1_yx = (p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x01)?true:false;
m_Com2_yx =( p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x02)?true:false;
m_Com3_yx = (p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x04)?true:false;
m_ActionAlarm = (p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x08)?true:false;
m_Point1Allow = (p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x80)?true:false;
((CEdit*)GetDlgItem(IDC_EDIT_POINT1))->EnableWindow(m_Point1Allow);
m_Point2Allow = (p.LOCAL_Coe.YX_Coe[nCurSel].Control&0x40)?true:false;
((CEdit*)GetDlgItem(IDC_EDIT_POINT2))->EnableWindow(m_Point2Allow);
nCurSel = m_AlarmNo.GetCurSel();
m_AlarmName = p.LOCAL_Coe.Alarm_Coe[nCurSel].Display;
m_Voice1 = (BYTE)p.LOCAL_Coe.Alarm_Coe[nCurSel].Sound[0];
m_AlarmLevel.SetCurSel(p.LOCAL_Coe.Alarm_Coe[nCurSel].Control);
UpdateData(false);
}
BOOL CDlgLocalPara::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
SetModified(true);
for(int i=0;i<4;i++)
m_Unit.AddString(unit[i]);
((CMainFrame*)AfxGetMainWnd())->GetDF0241Para(p);
m_YcNo.SetCurSel(0);
m_YxNo.SetCurSel(0);
m_AlarmNo.SetCurSel(0);
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/************************************************************************/
/* YC部分内容 */
/************************************************************************/
void CDlgLocalPara::OnSelendokComboYcNo()
{
// TODO: Add your control notification handler code here
RefreshData();
}
void CDlgLocalPara::OnChangeEditYcName()
{
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
strcpy(p.LOCAL_Coe.YC_Coe[nCurSel].Name,m_YcName);
SETDF0241PARA
}
void CDlgLocalPara::OnChangeEditXishu()
{
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
p.LOCAL_Coe.YC_Coe[nCurSel].Coe = m_Xishu;
SETDF0241PARA
}
void CDlgLocalPara::OnRadioJiaoliu()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
p.LOCAL_Coe.YC_Coe[nCurSel].Control &= 0xF7;
SETDF0241PARA
}
void CDlgLocalPara::OnRadioZhiliu()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
p.LOCAL_Coe.YC_Coe[nCurSel].Control &= 0x08;
SETDF0241PARA
}
void CDlgLocalPara::OnChangeEditLingdian()
{
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
p.LOCAL_Coe.YC_Coe[nCurSel].Zero = m_LingDian;
SETDF0241PARA
}
void CDlgLocalPara::OnChangeEditTopvalue()
{
UpdateData(true);
int nCurSel = m_YcNo.GetCurSel();
p.LOCAL_Coe.YC_Coe[nCurSel].Scale = m_TopValue;
SETDF0241PARA
}
void CDlgLocalPara::OnSelendokComboUnit()
{
int nCurSel = m_YcNo.GetCurSel();
int Sel = m_Unit.GetCurSel();
if(Sel >= 0)
m_Unit.GetLBText(Sel,p.LOCAL_Coe.YC_Coe[nCurSel].Unit);
SETDF0241PARA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -