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

📄 dlglimit.cpp

📁 电力系统无功自动补偿的操作系统程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void dlglimit::OnSamemx1() 
{
	// TODO: Add your control notification handler code here
	VQCMUXI_DBS	*pmx;
	if ((mxSet->ZBNo==0)&&(mxSet->MXNo==0)) return;
	if (mxSet->pFatherZB->ZBNo==0)
		 pmx = &(mxSet->pFatherZB->MX[0]);
	else pmx = &(mxSet->pFatherZB->pFatherVQC->ZB[0].MX[0]);

	m_ULockDownLimit=	pmx->U.LockDownLimit;
	m_ULockUpLimit	=	pmx->U.LockUpLimit;
	m_UOweValue		=	pmx->U.oweValue;
	m_UOweWeight	=	pmx->U.oweWeight;
	m_UfValue1		=	pmx->U.fValue1;
	m_UfValue2		=	pmx->U.fValue2;
	m_UWeight1		=	pmx->U.weight1;
	m_UWeight2		=	pmx->U.weight2;

	m_QLockDownLimit=	pmx->Q.LockDownLimit;
	m_QLockUpLimit	=	pmx->Q.LockUpLimit;
	m_QOweValue		=	pmx->Q.oweValue;
	m_QOweWeight	=	pmx->Q.oweWeight;
	m_QfValue1		=	pmx->Q.fValue1;
	m_QfValue2		=	pmx->Q.fValue2;
	m_QWeight1		=	pmx->Q.weight1;
	m_QWeight2		=	pmx->Q.weight2;

	for (BYTE i=0;i<UQ_SEASON_NUMBER;i++){
		mxSet->U.limit[i] = pmx->U.limit[i];
		mxSet->Q.limit[i] = pmx->Q.limit[i];
	}
	UpdateData(FALSE);

	OnSelchangeSeason();
}

void dlglimit::OnSameseason1() 
{
	// TODO: Add your control notification handler code here
	if (m_SeasonNo<=0) return;
	mxSet->U.limit[m_SeasonNo] = mxSet->U.limit[0];
	mxSet->Q.limit[m_SeasonNo] = mxSet->Q.limit[0];
	OnSelchangeSeason();
}

void dlglimit::OnSelchangeSeason() 
{
	// TODO: Add your control notification handler code here
	int i;

	i = (int)SendDlgItemMessage(IDC_Season,CB_GETCURSEL,0,0L);
	if (i!=m_SeasonNo)	{
		SaveCurrSeasonSet();
		m_SeasonNo = i;
	}

	m_UTimeSectNum  =	mxSet->U.limit[m_SeasonNo].SectNum;
	if (m_UTimeSectNum >0) m_UTimeSectNum --;
	else m_UTimeSectNum =0;

	m_QTimeSectNum  =	mxSet->Q.limit[m_SeasonNo].SectNum;
	if (m_QTimeSectNum >0) m_QTimeSectNum --;
	else m_QTimeSectNum =0;

	SendDlgItemMessage(IDC_UTimeSectNum,  CB_SETCURSEL, m_UTimeSectNum, 0);
	SendDlgItemMessage(IDC_QTimeSectNum,  CB_SETCURSEL, m_QTimeSectNum, 0);
	OnSelchangeUTimeSectNum();
	OnSelchangeQTimeSectNum();
}

void dlglimit::OnSelchangeUTimeSectNum() 
{
	// TODO: Add your control notification handler code here
	BYTE i;
	char szText[30];

	m_UTimeSectNum = (int)SendDlgItemMessage(IDC_UTimeSectNum,CB_GETCURSEL,0,0L);
	if (m_UTimeSectNum == CB_ERR) return;

    SendDlgItemMessage(IDC_UTimeSect,  LB_RESETCONTENT, 0, 0l);
	for (i=0;i<=m_UTimeSectNum;i++){
		wsprintf(szText, "%02d:%02d", mxSet->U.limit[m_SeasonNo].EndHour[i],
									  mxSet->U.limit[m_SeasonNo].EndMinute[i]);
	    SendDlgItemMessage(IDC_UTimeSect,  LB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	}

	for (i=0;i<UQ_SECT_NUMBER;i++){
		if (i>m_UTimeSectNum) {
			strcpy(szText, "0");
		    SetDlgItemText(IDC_EDIT1+i, szText);
			strcpy(szText, "0");
			SetDlgItemText(IDC_EDIT17+i, szText);
			GetDlgItem(IDC_EDIT1+i)->EnableWindow(FALSE);
			GetDlgItem(IDC_EDIT17+i)->EnableWindow(FALSE);

			strcpy(szText,"00:00-24:00");
			GetDlgItem(IDC_STATIC_TIME1+i)->SetWindowText(szText);
			GetDlgItem(IDC_STATIC_TIME1+i)->EnableWindow(FALSE);
		}
		else{
			sprintf(szText, "%g",mxSet->U.limit[m_SeasonNo].DownLimit[i]);
		    SetDlgItemText(IDC_EDIT1+i, szText);
			sprintf(szText, "%g",mxSet->U.limit[m_SeasonNo].UpLimit[i]);
			SetDlgItemText(IDC_EDIT17+i, szText);
			GetDlgItem(IDC_EDIT1+i)->EnableWindow(TRUE);
			GetDlgItem(IDC_EDIT17+i)->EnableWindow(TRUE);

			if (i==m_UTimeSectNum)
					wsprintf(szText,"%02d:%02d-%02d:%02d",
								mxSet->U.limit[m_SeasonNo].EndHour[i],
								mxSet->U.limit[m_SeasonNo].EndMinute[i],
								mxSet->U.limit[m_SeasonNo].EndHour[0],
								mxSet->U.limit[m_SeasonNo].EndMinute[0]);
			else	wsprintf(szText,"%02d:%02d-%02d:%02d",
								mxSet->U.limit[m_SeasonNo].EndHour[i],
								mxSet->U.limit[m_SeasonNo].EndMinute[i],
								mxSet->U.limit[m_SeasonNo].EndHour[i+1],
								mxSet->U.limit[m_SeasonNo].EndMinute[i+1]);
			GetDlgItem(IDC_STATIC_TIME1+i)->SetWindowText(szText);
			GetDlgItem(IDC_STATIC_TIME1+i)->EnableWindow(TRUE);
		}
	}
}

void dlglimit::OnSelchangeQTimeSectNum() 
{
	// TODO: Add your control notification handler code here
	BYTE i;
	char szText[30];

	m_QTimeSectNum = (int)SendDlgItemMessage(IDC_QTimeSectNum,CB_GETCURSEL,0,0L);
	if (m_QTimeSectNum == CB_ERR) return;

    SendDlgItemMessage(IDC_QTimeSect,  LB_RESETCONTENT, 0, 0l);
	for (i=0;i<=m_QTimeSectNum;i++){
		wsprintf(szText, "%02d:%02d", mxSet->Q.limit[m_SeasonNo].EndHour[i],
									  mxSet->Q.limit[m_SeasonNo].EndMinute[i]);
	    SendDlgItemMessage(IDC_QTimeSect,  LB_ADDSTRING, 0,(LPARAM)(LPSTR)&szText[0]);
	}

	for (i=0;i<UQ_SECT_NUMBER;i++){
		if (i>m_QTimeSectNum) {
			strcpy(szText, "0");
		    SetDlgItemText(IDC_EDIT39+i, szText);
			strcpy(szText, "0");
			SetDlgItemText(IDC_EDIT55+i, szText);
			GetDlgItem(IDC_EDIT39+i)->EnableWindow(FALSE);
			GetDlgItem(IDC_EDIT55+i)->EnableWindow(FALSE);

			strcpy(szText,"00:00-24:00");
			GetDlgItem(IDC_STATIC_TIME17+i)->SetWindowText(szText);
			GetDlgItem(IDC_STATIC_TIME17+i)->EnableWindow(FALSE);
		}
		else{
			sprintf(szText, "%g",mxSet->Q.limit[m_SeasonNo].DownLimit[i]);
		    SetDlgItemText(IDC_EDIT39+i, szText);
			sprintf(szText, "%g",mxSet->Q.limit[m_SeasonNo].UpLimit[i]);
			SetDlgItemText(IDC_EDIT55+i, szText);
			GetDlgItem(IDC_EDIT39+i)->EnableWindow(TRUE);
			GetDlgItem(IDC_EDIT55+i)->EnableWindow(TRUE);

			if (i==m_QTimeSectNum)
					wsprintf(szText,"%02d:%02d-%02d:%02d",
								mxSet->Q.limit[m_SeasonNo].EndHour[i],
								mxSet->Q.limit[m_SeasonNo].EndMinute[i],
								mxSet->Q.limit[m_SeasonNo].EndHour[0],
								mxSet->Q.limit[m_SeasonNo].EndMinute[0]);
			else	wsprintf(szText,"%02d:%02d-%02d:%02d",
								mxSet->Q.limit[m_SeasonNo].EndHour[i],
								mxSet->Q.limit[m_SeasonNo].EndMinute[i],
								mxSet->Q.limit[m_SeasonNo].EndHour[i+1],
								mxSet->Q.limit[m_SeasonNo].EndMinute[i+1]);
			GetDlgItem(IDC_STATIC_TIME17+i)->SetWindowText(szText);
			GetDlgItem(IDC_STATIC_TIME17+i)->EnableWindow(TRUE);
		}
	}
}

void dlglimit::OnDblclkUTimeSect() 
{
	// TODO: Add your control notification handler code here
	int i,index;
	char szText[30];
	BYTE h,m;
	dlgSetTime setTimeDef;
	index = (int)SendDlgItemMessage(IDC_UTimeSect,LB_GETCURSEL,0,0L);
	if (index==LB_ERR) return;
	UpdateData(TRUE);
	wsprintf(szText, "%02d:%02d",	mxSet->U.limit[m_SeasonNo].EndHour[index],
									mxSet->U.limit[m_SeasonNo].EndMinute[index]);
	setTimeDef.m_EndTime = szText;
	if (IDOK!=setTimeDef.DoModal()) return;
	strcpy(szText, setTimeDef.m_EndTime);
    szText[5]=0;
	for (i=0;i<5;i++){
		if (szText[i]==':') break;
    }
    if ((i==1)||(i==2)){
		szText[i]=0; 
		h = (BYTE)atoi(szText);
		m = (BYTE)atoi(&szText[i+1]);
    }
	else {
		szText[2]=0;
		h = (BYTE)atoi(szText);
		m = 0;
	}
	if (h<0||h>24||m<0||m>59) {
		MessageBox("不可识别的时间!", "警告", MB_OK);
		return;
	}
	mxSet->U.limit[m_SeasonNo].EndHour[index]   = h;
	mxSet->U.limit[m_SeasonNo].EndMinute[index] = m;

	OnSelchangeUTimeSectNum();
}

void dlglimit::OnDblclkQTimeSect() 
{
	// TODO: Add your control notification handler code here
	int i,index;
	char szText[30];
	BYTE h,m;
	dlgSetTime setTimeDef;
	index = (int)SendDlgItemMessage(IDC_QTimeSect,LB_GETCURSEL,0,0L);
	if (index==LB_ERR) return;
	UpdateData(TRUE);
	wsprintf(szText, "%02d:%02d",	mxSet->Q.limit[m_SeasonNo].EndHour[index],
									mxSet->Q.limit[m_SeasonNo].EndMinute[index]);
	setTimeDef.m_EndTime = szText;
	if (IDOK!=setTimeDef.DoModal()) return;
	strcpy(szText, setTimeDef.m_EndTime);
    szText[5]=0;
	for (i=0;i<5;i++){
		if (szText[i]==':') break;
    }
    if ((i==1)||(i==2)){
		szText[i]=0; 
		h = (BYTE)atoi(szText);
		m = (BYTE)atoi(&szText[i+1]);
    }
	else {
		szText[2]=0;
		h = (BYTE)atoi(szText);
		m = 0;
	}
	if (h<0||h>24||m<0||m>59) {
		MessageBox("不可识别的时间!", "警告", MB_OK);
		return;
	}
	mxSet->Q.limit[m_SeasonNo].EndHour[index]   = h;
	mxSet->Q.limit[m_SeasonNo].EndMinute[index] = m;

	OnSelchangeQTimeSectNum();
}

⌨️ 快捷键说明

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