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

📄 dlgmx.cpp

📁 电力系统无功自动补偿的操作系统程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// dlgmx.cpp : implementation file
//

#include "stdafx.h"
#include "vqcwin.h"
#include "dlgmx.h"
#include "dlglimit.h"
#include "dlgdrq.h"
#include "dlgdblink.h"
#include "dlglock.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// dlgmx dialog

void dlgmx::InitDataDefineProc()
{
	m_LinkQ		=	mxSet.bLinkQ;
	m_ActWeight =	mxSet.ActWeight;
	m_JudgeTime	=	mxSet.JudgeTime;
	if (mxSet.pGlobalDef->DevControlMode == DEVMODE_ONLY_FJT){
		m_DrqNum	=	0;
		m_DkqNum	=	0;
	}
	else {
		m_DrqNum	=	mxSet.DRQNum;
		m_DkqNum	=	mxSet.DKQNum;
	}
	m_LeftLinkDevNum	=	mxSet.LeftLinkDevNum;
	m_RightLinkDevNum	=	mxSet.RightLinkDevNum;
}

void dlgmx::EndDataDefineProc()
{
	UpdateData(TRUE);
	mxSet.bLinkQ	=	m_LinkQ;
	mxSet.ActWeight	=	m_ActWeight;
	mxSet.JudgeTime	=	m_JudgeTime;
	if (mxSet.pGlobalDef->DevControlMode == DEVMODE_ONLY_FJT){
		mxSet.DRQNum	=	0;
		mxSet.DKQNum	=	0;
	}
	else {
		mxSet.DRQNum	=	m_DrqNum;
		mxSet.DKQNum	=	m_DkqNum;
	}
	mxSet.LeftLinkDevNum	=	m_LeftLinkDevNum;
	mxSet.RightLinkDevNum	=	m_RightLinkDevNum;
}

dlgmx::dlgmx(CWnd* pParent /*=NULL*/)
	: CDialog(dlgmx::IDD, pParent)
{
	//{{AFX_DATA_INIT(dlgmx)
	m_ActWeight = 0;
	m_DkqNum = -1;
	m_DrqNum = -1;
	m_JudgeTime = 0;
	m_LeftLinkDevNum = -1;
	m_LinkQ = FALSE;
	m_RightLinkDevNum = -1;
	//}}AFX_DATA_INIT
}


void dlgmx::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(dlgmx)
	DDX_Text(pDX, IDC_ActWeight, m_ActWeight);
	DDV_MinMaxUInt(pDX, m_ActWeight, 10, 10000);
	DDX_CBIndex(pDX, IDC_DkqNum, m_DkqNum);
	DDX_CBIndex(pDX, IDC_DrqNum, m_DrqNum);
	DDX_Text(pDX, IDC_JudgeTime, m_JudgeTime);
	DDV_MinMaxUInt(pDX, m_JudgeTime, 30, 1000);
	DDX_CBIndex(pDX, IDC_LeftLinkDevNum, m_LeftLinkDevNum);
	DDX_Check(pDX, IDC_LinkQ, m_LinkQ);
	DDX_CBIndex(pDX, IDC_RightLinkDevNum, m_RightLinkDevNum);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(dlgmx, CDialog)
	//{{AFX_MSG_MAP(dlgmx)
	ON_CBN_SELCHANGE(IDC_DkqNum, OnSelchangeDkqNum)
	ON_CBN_SELCHANGE(IDC_DrqNum, OnSelchangeDrqNum)
	ON_CBN_SELCHANGE(IDC_LeftLinkDevNum, OnSelchangeLeftLinkDevNum)
	ON_CBN_SELCHANGE(IDC_RightLinkDevNum, OnSelchangeRightLinkDevNum)
	ON_BN_CLICKED(IDC_DRQ1, OnDrq1)
	ON_BN_CLICKED(IDC_DRQ2, OnDrq2)
	ON_BN_CLICKED(IDC_DRQ3, OnDrq3)
	ON_BN_CLICKED(IDC_DRQ4, OnDrq4)
	ON_BN_CLICKED(IDC_DRQ5, OnDrq5)
	ON_BN_CLICKED(IDC_DRQ6, OnDrq6)
	ON_BN_CLICKED(IDC_DKQ1, OnDkq1)
	ON_BN_CLICKED(IDC_DKQ2, OnDkq2)
	ON_BN_CLICKED(IDC_DKQ3, OnDkq3)
	ON_BN_CLICKED(IDC_DKQ4, OnDkq4)
	ON_BN_CLICKED(IDC_DKQ5, OnDkq5)
	ON_BN_CLICKED(IDC_DKQ6, OnDkq6)
	ON_BN_CLICKED(IDC_SAMEMX1, OnSamemx1)
	ON_BN_CLICKED(IDC_Limit, OnLimit)
	ON_BN_CLICKED(IDC_LOCKDEF, OnLockdef)
	ON_BN_CLICKED(IDC_ReSet, OnReSet)
	ON_BN_CLICKED(IDC_AskDrqCloseRec, OnAskDrqCloseRec)
	ON_BN_CLICKED(IDC_AskDrqOpenRec, OnAskDrqOpenRec)
	ON_BN_CLICKED(IDC_AskFjtDownRec, OnAskFjtDownRec)
	ON_BN_CLICKED(IDC_AskFjtUpRec, OnAskFjtUpRec)
	ON_BN_CLICKED(IDC_LeftLinkDevRec1, OnLeftLinkDevRec1)
	ON_BN_CLICKED(IDC_LeftLinkDevRec2, OnLeftLinkDevRec2)
	ON_BN_CLICKED(IDC_LeftLinkDevRec3, OnLeftLinkDevRec3)
	ON_BN_CLICKED(IDC_LeftLinkDevRec4, OnLeftLinkDevRec4)
	ON_BN_CLICKED(IDC_LinkZbDzDevRec, OnLinkZbDzDevRec)
	ON_BN_CLICKED(IDC_LinkZbKgDevRec, OnLinkZbKgDevRec)
	ON_BN_CLICKED(IDC_RightLinkDevRec1, OnRightLinkDevRec1)
	ON_BN_CLICKED(IDC_RightLinkDevRec2, OnRightLinkDevRec2)
	ON_BN_CLICKED(IDC_RightLinkDevRec3, OnRightLinkDevRec3)
	ON_BN_CLICKED(IDC_RightLinkDevRec4, OnRightLinkDevRec4)
	ON_BN_CLICKED(IDC_URec, OnURec)
	ON_BN_CLICKED(IDC_QRec, OnQRec)
	ON_BN_CLICKED(IDC_PRec, OnPRec)
	ON_BN_CLICKED(IDC_LockStatRec, OnLockStatRec)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// dlgmx message handlers

BOOL dlgmx::OnInitDialog() 
{
	BYTE i;
	InitDataDefineProc();

	char szText[20];
	for (i=0;i<=VQC_DRQNUM;i++){
		wsprintf(szText, "%d", i);
	    SendDlgItemMessage(IDC_DrqNum,  CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	    SendDlgItemMessage(IDC_DkqNum,  CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	}
	for (i=0;i<=4;i++){
		wsprintf(szText, "%d", i);
	    SendDlgItemMessage(IDC_LeftLinkDevNum,   CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	    SendDlgItemMessage(IDC_RightLinkDevNum,  CB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	}

	CDialog::OnInitDialog();

	char headName[60];
	strcpy(headName, dlgName);
	strcat(headName,"参数设置");
	SetWindowText(headName);

	if (mxSet.pGlobalDef->DevControlMode == DEVMODE_ONLY_FJT){
		GetDlgItem(IDC_DrqNum)->EnableWindow(FALSE);
		GetDlgItem(IDC_DkqNum)->EnableWindow(FALSE);
		for (BYTE i=0;i<VQC_DRQNUM;i++){
			GetDlgItem(IDC_DRQ1+i)->EnableWindow(FALSE);
			GetDlgItem(IDC_DKQ1+i)->EnableWindow(FALSE);
		}
	}else{
		OnSelchangeDrqNum();
		OnSelchangeDkqNum();
	}
	OnSelchangeLeftLinkDevNum();
	OnSelchangeRightLinkDevNum();

	if (mxSet.pGlobalDef->bSameAllDevice)
		if (mxSet.ZBNo||mxSet.MXNo){
			GetDlgItem(IDC_LinkQ)->EnableWindow(FALSE);
			GetDlgItem(IDC_ActWeight)->EnableWindow(FALSE);
			GetDlgItem(IDC_JudgeTime)->EnableWindow(FALSE);
			GetDlgItem(IDC_SAMEMX1)->EnableWindow(FALSE);
		}
	// 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 dlgmx::OnSelchangeDkqNum()
{
	// TODO: Add your control notification handler code here
    mxSet.DKQNum = (int)SendDlgItemMessage(IDC_DkqNum,CB_GETCURSEL,0,0L);
	for (BYTE i=0;i<VQC_DRQNUM;i++){
		if (i<mxSet.DKQNum) GetDlgItem(IDC_DKQ1+i)->EnableWindow(TRUE);
		else GetDlgItem(IDC_DKQ1+i)->EnableWindow(FALSE);
	}
}

void dlgmx::OnSelchangeDrqNum()
{
	// TODO: Add your control notification handler code here
    mxSet.DRQNum = (int)SendDlgItemMessage(IDC_DrqNum,CB_GETCURSEL,0,0L);
	for (BYTE i=0;i<VQC_DRQNUM;i++){
		if (i<mxSet.DRQNum) GetDlgItem(IDC_DRQ1+i)->EnableWindow(TRUE);
		else GetDlgItem(IDC_DRQ1+i)->EnableWindow(FALSE);
	}
}

void dlgmx::OnSelchangeLeftLinkDevNum() 
{
	// TODO: Add your control notification handler code here
    mxSet.LeftLinkDevNum = (int)SendDlgItemMessage(IDC_LeftLinkDevNum,CB_GETCURSEL,0,0L);
	for (BYTE i=0;i<4;i++){
		if (i<mxSet.LeftLinkDevNum) GetDlgItem(IDC_LeftLinkDevRec1+i)->EnableWindow(TRUE);
		else GetDlgItem(IDC_LeftLinkDevRec1+i)->EnableWindow(FALSE);
	}
}

void dlgmx::OnSelchangeRightLinkDevNum() 
{
	// TODO: Add your control notification handler code here
    mxSet.RightLinkDevNum = (int)SendDlgItemMessage(IDC_RightLinkDevNum,CB_GETCURSEL,0,0L);
	for (BYTE i=0;i<4;i++){
		if (i<mxSet.RightLinkDevNum) GetDlgItem(IDC_RightLinkDevRec1+i)->EnableWindow(TRUE);
		else GetDlgItem(IDC_RightLinkDevRec1+i)->EnableWindow(FALSE);
	}
}

void dlgmx::OnDrqDkq(BYTE i, BOOL isDrq)
{
	int l;
	dlgdrq drqDef;

	if ((i<0)||(i>VQC_DRQNUM)) return;
	l = strlen(dlgName);
	if (isDrq)	wsprintf(&dlgName[l], "#%d电容器:",i+1);
	else		wsprintf(&dlgName[l], "#%d电抗器:",i+1);

	EndDataDefineProc();
	drqDef.drqSet.pFatherMX  = &mxSet;
	if (isDrq)	drqDef.drqSet = mxSet.DRQ[i];
	else		drqDef.drqSet = mxSet.DKQ[i];
	drqDef.dlgName = dlgName;
	if (IDOK==drqDef.DoModal()) {
		if (isDrq)	mxSet.DRQ[i] = drqDef.drqSet;
		else		mxSet.DKQ[i] = drqDef.drqSet;
	}
	dlgName[l] = 0;
}

void dlgmx::OnDrq1() 
{
	// TODO: Add your control notification handler code here
	OnDrqDkq(0, TRUE);
}

void dlgmx::OnDrq2() 
{
	// TODO: Add your control notification handler code here
	OnDrqDkq(1, TRUE);
}

void dlgmx::OnDrq3() 
{
	// TODO: Add your control notification handler code here
	OnDrqDkq(2, TRUE);
}

void dlgmx::OnDrq4() 
{
	// TODO: Add your control notification handler code here
	OnDrqDkq(3, TRUE);
}

void dlgmx::OnDrq5() 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -