⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgvqc.cpp

📁 电力系统无功自动补偿的操作系统程序
💻 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 + -