📄 dlgvqc.cpp
字号:
// dlgvqc.cpp : implementation file
//
#include "stdafx.h"
#include "vqcwin.h"
#include "dlgvqc.h"
#include "dlgzb.h"
#include "dlgdblink.h"
#include "dlglock.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// dlgvqc dialog
void dlgvqc::EndDataDefineProc()
{
UpdateData(TRUE);
VQCSet->globalDef.AdjustPeriodTime = m_AdjustPeriodTime;
VQCSet->globalDef.SeasonNum = m_SeasonNum +1;
VQCSet->globalDef.EndDay[0] = m_EndDay1;
VQCSet->globalDef.EndDay[1] = m_EndDay2;
VQCSet->globalDef.EndDay[2] = m_EndDay3;
VQCSet->globalDef.EndDay[3] = m_EndDay4;
VQCSet->globalDef.EndMonth[0] = m_EndMonth1;
VQCSet->globalDef.EndMonth[1] = m_EndMonth2;
VQCSet->globalDef.EndMonth[2] = m_EndMonth3;
VQCSet->globalDef.EndMonth[3] = m_EndMonth4;
VQCSet->globalDef.MaxActTimes = m_MaxActTimes;
VQCSet->globalDef.NextActTime = m_NextActTime;
VQCSet->globalDef.bSameAllDevice = m_SameAllDevice;
VQCSet->globalDef.bWatch = m_OnlyMonitor;
VQCSet->globalDef.bFirstDrq = m_bFirstUseDrq;
VQCSet->ZBNum = m_ZBNum+1;
if (VQCSet->globalDef.bSameAllDevice) VQCSet->SameAllDeviceSet();
}
void dlgvqc::InitDataDefineProc()
{
BYTE i;
m_AdjustPeriodTime = VQCSet->globalDef.AdjustPeriodTime;
m_SeasonNum = VQCSet->globalDef.SeasonNum-1;
m_EndDay1 = VQCSet->globalDef.EndDay[0];
m_EndDay2 = VQCSet->globalDef.EndDay[1];
m_EndDay4 = VQCSet->globalDef.EndDay[3];
m_EndDay3 = VQCSet->globalDef.EndDay[2];
m_EndMonth1 = VQCSet->globalDef.EndMonth[0];
m_EndMonth2 = VQCSet->globalDef.EndMonth[1];
m_EndMonth3 = VQCSet->globalDef.EndMonth[2];
m_EndMonth4 = VQCSet->globalDef.EndMonth[3];
m_MaxActTimes = VQCSet->globalDef.MaxActTimes;
m_NextActTime = VQCSet->globalDef.NextActTime;
m_OnlyMonitor = VQCSet->globalDef.bWatch;
m_SameAllDevice= VQCSet->globalDef.bSameAllDevice;
m_bFirstUseDrq = VQCSet->globalDef.bFirstDrq;
m_ZBNum = VQCSet->ZBNum-1;
char szText[20];
for (i=0;i<VQC_ZBNUM;i++){
wsprintf(szText, "%d", i+1);
SendDlgItemMessage(IDC_ZBNum, CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
}
for (i=0;i<UQ_SEASON_NUMBER;i++){
wsprintf(szText, "%d", i+1);
SendDlgItemMessage(IDC_SeasonNum, CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
}
((CSpinButtonCtrl *)GetDlgItem(IDC_DayAdjust1))->SetRange(1,31);
((CSpinButtonCtrl *)GetDlgItem(IDC_DayAdjust2))->SetRange(1,31);
((CSpinButtonCtrl *)GetDlgItem(IDC_DayAdjust3))->SetRange(1,31);
((CSpinButtonCtrl *)GetDlgItem(IDC_DayAdjust4))->SetRange(1,31);
((CSpinButtonCtrl *)GetDlgItem(IDC_MonthAdjust1))->SetRange(1,12);
((CSpinButtonCtrl *)GetDlgItem(IDC_MonthAdjust2))->SetRange(1,12);
((CSpinButtonCtrl *)GetDlgItem(IDC_MonthAdjust3))->SetRange(1,12);
((CSpinButtonCtrl *)GetDlgItem(IDC_MonthAdjust4))->SetRange(1,12);
/*
LocalStatRec
RemoteStartRec
RunStatRec
CheckLock
ZB
*/
/*
VQCSet->globalDef.RunMode
VQCSet->globalDef.DevControlMode
VQCSet->globalDef.bUseCos
VQCSet->globalDef.bUseMean*/
}
dlgvqc::dlgvqc(CWnd* pParent /*=NULL*/)
: CDialog(dlgvqc::IDD, pParent)
{
//{{AFX_DATA_INIT(dlgvqc)
m_AdjustPeriodTime = 0;
m_SeasonNum = -1;
m_EndDay1 = 0;
m_EndDay2 = 0;
m_EndDay3 = 0;
m_EndDay4 = 0;
m_EndMonth1 = 0;
m_EndMonth2 = 0;
m_EndMonth3 = 0;
m_EndMonth4 = 0;
m_bFirstUseDrq = FALSE;
m_MaxActTimes = 0;
m_NextActTime = 0;
m_OnlyMonitor = FALSE;
m_ZBNum = -1;
m_SameAllDevice = FALSE;
//}}AFX_DATA_INIT
}
void dlgvqc::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(dlgvqc)
DDX_Text(pDX, IDC_AdjustPeriodTime, m_AdjustPeriodTime);
DDV_MinMaxUInt(pDX, m_AdjustPeriodTime, 2, 30);
DDX_CBIndex(pDX, IDC_SeasonNum, m_SeasonNum);
DDX_Text(pDX, IDC_Day1, m_EndDay1);
DDV_MinMaxUInt(pDX, m_EndDay1, 1, 31);
DDX_Text(pDX, IDC_Day2, m_EndDay2);
DDV_MinMaxUInt(pDX, m_EndDay2, 1, 31);
DDX_Text(pDX, IDC_Day3, m_EndDay3);
DDV_MinMaxUInt(pDX, m_EndDay3, 1, 31);
DDX_Text(pDX, IDC_Day4, m_EndDay4);
DDV_MinMaxUInt(pDX, m_EndDay4, 1, 31);
DDX_Text(pDX, IDC_Month1, m_EndMonth1);
DDV_MinMaxUInt(pDX, m_EndMonth1, 1, 12);
DDX_Text(pDX, IDC_Month2, m_EndMonth2);
DDV_MinMaxUInt(pDX, m_EndMonth2, 1, 12);
DDX_Text(pDX, IDC_Month3, m_EndMonth3);
DDV_MinMaxUInt(pDX, m_EndMonth3, 1, 12);
DDX_Text(pDX, IDC_Month4, m_EndMonth4);
DDV_MinMaxUInt(pDX, m_EndMonth4, 1, 12);
DDX_Check(pDX, IDC_FirstUseDrq, m_bFirstUseDrq);
DDX_Text(pDX, IDC_MaxActTimes, m_MaxActTimes);
DDV_MinMaxUInt(pDX, m_MaxActTimes, 30, 500);
DDX_Text(pDX, IDC_NextActTime, m_NextActTime);
DDV_MinMaxUInt(pDX, m_NextActTime, 30, 1000);
DDX_Check(pDX, IDC_OnlyMonitor, m_OnlyMonitor);
DDX_CBIndex(pDX, IDC_ZBNum, m_ZBNum);
DDX_Check(pDX, IDC_SameAllDevice, m_SameAllDevice);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(dlgvqc, CDialog)
//{{AFX_MSG_MAP(dlgvqc)
ON_BN_CLICKED(IDTEXT, OnText)
ON_BN_CLICKED(IDHELP, OnHelp)
ON_CBN_SELCHANGE(IDC_ZBNum, OnSelchangeZBNum)
ON_CBN_SELCHANGE(IDC_SeasonNum, OnSelchangeSeasonNum)
ON_BN_CLICKED(IDC_FirstU, OnFirstU)
ON_BN_CLICKED(IDC_AllFirst, OnAllFirst)
ON_BN_CLICKED(IDC_FirstQ, OnFirstQ)
ON_BN_CLICKED(IDC_OnlyU, OnOnlyU)
ON_BN_CLICKED(IDC_OnlyQ, OnOnlyQ)
ON_BN_CLICKED(IDC_OnlyUseFjt, OnOnlyUseFjt)
ON_BN_CLICKED(IDC_OnlyUseDrq, OnOnlyUseDrq)
ON_BN_CLICKED(IDC_UseAll, OnUseAll)
ON_BN_CLICKED(IDC_LimitWithQ, OnLimitWithQ)
ON_BN_CLICKED(IDC_LimitWithCosQ, OnLimitWithCosQ)
ON_BN_CLICKED(IDC_UseMean, OnUseMean)
ON_BN_CLICKED(IDC_UseWeight, OnUseWeight)
ON_BN_CLICKED(IDC_ZB1, OnZb1)
ON_BN_CLICKED(IDC_ZB2, OnZb2)
ON_BN_CLICKED(IDC_ZB3, OnZb3)
ON_BN_CLICKED(IDC_ZB4, OnZb4)
ON_BN_CLICKED(IDC_ZB5, OnZb5)
ON_BN_CLICKED(IDC_ZB6, OnZb6)
ON_BN_CLICKED(IDC_LOCKDEF, OnLockdef)
ON_COMMAND(IDM_ParamSet, OnParamSet)
ON_BN_CLICKED(IDC_ReSet, OnReSet)
ON_BN_CLICKED(IDC_localRun, OnlocalRun)
ON_BN_CLICKED(IDC_RunStatus, OnRunStatus)
ON_BN_CLICKED(IDC_RemoteRun, OnRemoteRun)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// dlgvqc message handlers
void dlgvqc::OnOK()
{
// TODO: Add extra validation here
char alarmMsg[128];
strcpy(alarmMsg, "VQC:");
EndDataDefineProc();
if (!VQCSet->CheckParam(&alarmMsg[strlen(alarmMsg)])){
strcat(alarmMsg,"您确定退出吗?");
if (IDYES==MessageBox(alarmMsg, "警告", MB_YESNO | MB_ICONQUESTION)) CDialog::OnOK();
else return;
}
CDialog::OnOK();
}
void dlgvqc::OnText()
{
// TODO: Add your control notification handler code here
}
void dlgvqc::OnHelp()
{
// TODO: Add your control notification handler code here
}
void dlgvqc::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
BOOL dlgvqc::OnInitDialog()
{
InitDataDefineProc();
CDialog::OnInitDialog();
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
CheckRadioButton(IDC_UseAll, IDC_OnlyUseDrq, IDC_UseAll+VQCSet->globalDef.DevControlMode);
if (VQCSet->globalDef.bUseCos)
CheckRadioButton(IDC_LimitWithQ, IDC_LimitWithCosQ, IDC_LimitWithCosQ);
else CheckRadioButton(IDC_LimitWithQ, IDC_LimitWithCosQ, IDC_LimitWithQ);
if (VQCSet->globalDef.bUseMean)
CheckRadioButton(IDC_UseMean, IDC_UseWeight, IDC_UseMean);
else CheckRadioButton(IDC_UseMean, IDC_UseWeight, IDC_UseWeight);
OnSelchangeSeasonNum();
OnSelchangeZBNum();
// TODO: Add extra initialization here
DispDblinkDefineButton();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void dlgvqc::OnSelchangeZBNum()
{
// TODO: Add your control notification handler code here
m_ZBNum = (int)SendDlgItemMessage(IDC_ZBNum,CB_GETCURSEL,0,0L);
for (BYTE i=0;i<VQC_ZBNUM;i++){
if (i<=m_ZBNum) GetDlgItem(IDC_ZB1+i)->EnableWindow(TRUE);
else GetDlgItem(IDC_ZB1+i)->EnableWindow(FALSE);
}
}
void dlgvqc::OnSelchangeSeasonNum()
{
// TODO: Add your control notification handler code here
m_SeasonNum = (int)SendDlgItemMessage(IDC_SeasonNum,CB_GETCURSEL,0,0L);
for (BYTE i=0;i<UQ_SEASON_NUMBER;i++){
if (i<=m_SeasonNum) {
GetDlgItem(IDC_Month1+i)->EnableWindow(TRUE);
GetDlgItem(IDC_Day1+i)->EnableWindow(TRUE);
GetDlgItem(IDC_MonthAdjust1+i)->EnableWindow(TRUE);
GetDlgItem(IDC_DayAdjust1+i)->EnableWindow(TRUE);
}
else {
GetDlgItem(IDC_Month1+i)->EnableWindow(FALSE);
GetDlgItem(IDC_Day1+i)->EnableWindow(FALSE);
GetDlgItem(IDC_MonthAdjust1+i)->EnableWindow(FALSE);
GetDlgItem(IDC_DayAdjust1+i)->EnableWindow(FALSE);
}
}
}
void dlgvqc::OnFirstU()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.RunMode = VQCMODE_FIRST_U;
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
}
void dlgvqc::OnAllFirst()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.RunMode = VQCMODE_ALL;
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
}
void dlgvqc::OnFirstQ()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.RunMode = VQCMODE_FIRST_Q;
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
}
void dlgvqc::OnOnlyU()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.RunMode = VQCMODE_ONLY_U;
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
}
void dlgvqc::OnOnlyQ()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.RunMode = VQCMODE_ONLY_Q;
CheckRadioButton(IDC_FirstU, IDC_OnlyQ, IDC_FirstU+VQCSet->globalDef.RunMode);
}
void dlgvqc::OnOnlyUseFjt()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.DevControlMode = DEVMODE_ONLY_FJT;
CheckRadioButton(IDC_UseAll, IDC_OnlyUseDrq, IDC_OnlyUseFjt);
}
void dlgvqc::OnOnlyUseDrq()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.DevControlMode = DEVMODE_ONLY_DRQ;
CheckRadioButton(IDC_UseAll, IDC_OnlyUseDrq, IDC_OnlyUseDrq);
}
void dlgvqc::OnUseAll()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.DevControlMode = DEVMODE_ALL;
CheckRadioButton(IDC_UseAll, IDC_OnlyUseDrq, IDC_UseAll);
}
void dlgvqc::OnLimitWithQ()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.bUseCos = FALSE;
CheckRadioButton(IDC_LimitWithQ, IDC_LimitWithCosQ, IDC_LimitWithQ);
}
void dlgvqc::OnLimitWithCosQ()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.bUseCos = TRUE;
CheckRadioButton(IDC_LimitWithQ, IDC_LimitWithCosQ, IDC_LimitWithCosQ);
}
void dlgvqc::OnUseMean()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.bUseMean = TRUE;
CheckRadioButton(IDC_UseMean, IDC_UseWeight, IDC_UseMean);
}
void dlgvqc::OnUseWeight()
{
// TODO: Add your control notification handler code here
VQCSet->globalDef.bUseMean = FALSE;
CheckRadioButton(IDC_UseMean, IDC_UseWeight, IDC_UseWeight);
}
void dlgvqc::OnZb1()
{
// TODO: Add your control notification handler code here
OnZb(0);
}
void dlgvqc::OnZb2()
{
// TODO: Add your control notification handler code here
OnZb(1);
}
void dlgvqc::OnZb3()
{
// TODO: Add your control notification handler code here
OnZb(2);
}
void dlgvqc::OnZb4()
{
// TODO: Add your control notification handler code here
OnZb(3);
}
void dlgvqc::OnZb5()
{
// TODO: Add your control notification handler code here
OnZb(4);
}
void dlgvqc::OnZb6()
{
// TODO: Add your control notification handler code here
OnZb(5);
}
void dlgvqc::OnZb(BYTE i)
{
dlgzb zbDef;
char dlgName[128];
if ((i<0)||(i>=VQC_ZBNUM)) return;
EndDataDefineProc();
wsprintf(dlgName, "#%d主变:",i+1);
zbDef.zbSet.pFatherVQC = VQCSet;
zbDef.zbSet.InitStructProc();
zbDef.zbSet.CopyDefineProc(&(VQCSet->ZB[i]));
zbDef.dlgName = dlgName;
if (IDOK!=zbDef.DoModal()) return;
VQCSet->ZB[i].CopyDefineProc(&(zbDef.zbSet));
}
void dlgvqc::OnLockdef()
{
// TODO: Add your control notification handler code here
dlglock lockDef;
char dlgName[128];
strcpy(dlgName,"VQC");
EndDataDefineProc();
lockDef.dlgName = dlgName;
lockDef.lockSet = VQCSet->CheckLock;
if (IDOK!=lockDef.DoModal()) return;
VQCSet->CheckLock = lockDef.lockSet;
}
void dlgvqc::OnParamSet()
{
// TODO: Add your command handler code here
}
void dlgvqc::DispDblinkDefineButton()
{
char szText[128];
VQCSet->LocalStatRec.GetName(szText);
GetDlgItem(IDC_localRun)->SetWindowText(szText);
VQCSet->RunStatRec.GetName(szText);
GetDlgItem(IDC_RunStatus)->SetWindowText(szText);
VQCSet->RemoteStartRec.GetName(szText);
GetDlgItem(IDC_RemoteRun)->SetWindowText(szText);
}
void dlgvqc::OnReSet()
{
// TODO: Add your control notification handler code here
VQCSet->VQCSET::VQCSET();
InitDataDefineProc();
UpdateData(FALSE);
DispDblinkDefineButton();
}
void dlgvqc::OnlocalRun()
{
// TODO: Add your control notification handler code here
char dlgName[128];
dlgName[0] =0;
DoDataDblinkDefineProc(GetDlgItem(IDC_localRun), "就地投入",dlgName, "VQC就地投入状态", &VQCSet->LocalStatRec, DATA_TYPE_YX);
}
void dlgvqc::OnRunStatus()
{
// TODO: Add your control notification handler code here
char dlgName[128];
dlgName[0] =0;
DoDataDblinkDefineProc(GetDlgItem(IDC_RunStatus), "运行状态",dlgName, "VQC运行状态", &VQCSet->RunStatRec, DATA_TYPE_YX);
}
void dlgvqc::OnRemoteRun()
{
// TODO: Add your control notification handler code here
char dlgName[128];
dlgName[0] =0;
DoDataDblinkDefineProc(GetDlgItem(IDC_RemoteRun), "远方投入", dlgName, "VQC远方请求投入状态", &VQCSet->RemoteStartRec, DATA_TYPE_YX);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -