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

📄 remotehidealarm.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{
			point.x -= 30;
			point.y -= 10;
			if(point.x > 352)
				point.x = 352;
			g_MouseRect.right=point.x/16*16;
			if(point.y > 288)
				point.y = 288;
			g_MouseRect.bottom=point.y/16*16;
			POINT tPoint=point;
			g_ShowRect.right=tPoint.x/16*16;
			g_ShowRect.bottom=tPoint.y/16*16;
		}
	}	
	CDialog::OnMouseMove(nFlags, point);
}

void CRemoteHideAlarm::OnCheckhidealarmgetrect() 
{
	// TODO: Add your control notification handler code here
	if(m_iPlayhandle < 0)
		return;
	UpdateData(TRUE);
	if(m_bSetHideAlarm)
	{
		m_bSetHideAlarm = FALSE;
		m_bDrawdetect = FALSE;
		UpdateData(FALSE);
		GetDlgItem(IDHIDEALARMOK)->EnableWindow(FALSE);
	}
	if(m_bGetHideAlarm)
	{
		NET_DVR_RigisterDrawFun(m_iPlayhandle,NULL, 0);
		Sleep(200);
		NET_DVR_RigisterDrawFun(m_iPlayhandle,DrawFunShow0, 0);
	}
	else
	{
		NET_DVR_RigisterDrawFun(m_iPlayhandle,NULL, 0);
	}
}

void CRemoteHideAlarm::OnCheckhidealarmsetrect() 
{
	// TODO: Add your control notification handler code here
	if(m_iPlayhandle < 0)
		return;
	UpdateData(TRUE);
	if(m_bGetHideAlarm)
	{
		m_bGetHideAlarm = FALSE;
		UpdateData(FALSE);
	}
	if(m_bSetHideAlarm)
	{
		NET_DVR_RigisterDrawFun(m_iPlayhandle,NULL,0);
		m_bDrawdetect = TRUE;
		GetDlgItem(IDHIDEALARMOK)->EnableWindow(TRUE);
	}
	else
	{
		m_bDrawdetect = FALSE;
		NET_DVR_RigisterDrawFun(m_iPlayhandle,NULL,0);
		GetDlgItem(IDHIDEALARMOK)->EnableWindow(FALSE);
	}
}

void CRemoteHideAlarm::OnExit() 
{
	// TODO: Add your control notification handler code here
	if(m_iPlayhandle >= 0)
	{
		NET_DVR_RigisterDrawFun(m_iPlayhandle,NULL, 0);
		NET_DVR_StopRealPlay(m_iPlayhandle);
		m_iPlayhandle = -1;
	}
	CDialog::OnOK();
}

void CRemoteHideAlarm::OnHidealarmok() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(!F_TimeTest())
		return;
	int	i = m_WeekDayCtrl.GetCurSel();	
	lpHideAlarm->struAlarmTime[i][0].byStartHour = m_iHour11;
	lpHideAlarm->struAlarmTime[i][0].byStartMin = m_iMin11;
	lpHideAlarm->struAlarmTime[i][0].byStopHour = m_iHour12;
	lpHideAlarm->struAlarmTime[i][0].byStopMin = m_iMin12;
	lpHideAlarm->struAlarmTime[i][1].byStartHour = m_iHour21;
	lpHideAlarm->struAlarmTime[i][1].byStartMin = m_iMin21;
	lpHideAlarm->struAlarmTime[i][1].byStopHour = m_iHour22;
	lpHideAlarm->struAlarmTime[i][1].byStopMin = m_iMin22;
	lpHideAlarm->struAlarmTime[i][2].byStartHour = m_iHour31;
	lpHideAlarm->struAlarmTime[i][2].byStartMin = m_iMin31;
	lpHideAlarm->struAlarmTime[i][2].byStopHour = m_iHour32;
	lpHideAlarm->struAlarmTime[i][2].byStopMin = m_iMin32;
	lpHideAlarm->struAlarmTime[i][3].byStartHour = m_iHour41;
	lpHideAlarm->struAlarmTime[i][3].byStartMin = m_iMin41;
	lpHideAlarm->struAlarmTime[i][3].byStopHour = m_iHour42;
	lpHideAlarm->struAlarmTime[i][3].byStopMin = m_iMin42;
	
	if (g_MouseRect.top <= g_MouseRect.bottom)
	{
		if (g_MouseRect.left <= g_MouseRect.right)
		{
			lpHideAlarm->wHideAlarmAreaHeight = (WORD)((g_MouseRect.bottom-g_MouseRect.top)*2);
			lpHideAlarm->wHideAlarmAreaWidth = (WORD)((g_MouseRect.right-g_MouseRect.left)*2);
			lpHideAlarm->wHideAlarmAreaTopLeftX = (WORD)(g_MouseRect.left*2);
			lpHideAlarm->wHideAlarmAreaTopLeftY = (WORD)(g_MouseRect.top*2);
		}
		else
		{
			lpHideAlarm->wHideAlarmAreaHeight = (WORD)((g_MouseRect.bottom-g_MouseRect.top)*2);
			lpHideAlarm->wHideAlarmAreaWidth = (WORD)((g_MouseRect.left-g_MouseRect.right)*2);
			lpHideAlarm->wHideAlarmAreaTopLeftX = (WORD)(g_MouseRect.right*2);
			lpHideAlarm->wHideAlarmAreaTopLeftY = (WORD)(g_MouseRect.top*2);
		}	
	}
	else
	{
		if (g_MouseRect.left <= g_MouseRect.right)
		{
			lpHideAlarm->wHideAlarmAreaHeight = (WORD)((g_MouseRect.top-g_MouseRect.bottom)*2);
			lpHideAlarm->wHideAlarmAreaWidth = (WORD)((g_MouseRect.right-g_MouseRect.left)*2);
			lpHideAlarm->wHideAlarmAreaTopLeftX = (WORD)(g_MouseRect.left*2);
			lpHideAlarm->wHideAlarmAreaTopLeftY = (WORD)(g_MouseRect.bottom*2);
		}
		else
		{
			lpHideAlarm->wHideAlarmAreaHeight = (WORD)((g_MouseRect.top-g_MouseRect.bottom)*2);
			lpHideAlarm->wHideAlarmAreaWidth = (WORD)((g_MouseRect.left-g_MouseRect.right)*2);
			lpHideAlarm->wHideAlarmAreaTopLeftX = (WORD)(g_MouseRect.right*2);
			lpHideAlarm->wHideAlarmAreaTopLeftY = (WORD)(g_MouseRect.bottom*2);
		}
	}

	lpHideAlarm->strHideAlarmHandleType.dwHandleType = 0;
	lpHideAlarm->strHideAlarmHandleType.dwHandleType |= (m_bHandleType1 << 0);
	lpHideAlarm->strHideAlarmHandleType.dwHandleType |= (m_bHandleType2 << 1);
	lpHideAlarm->strHideAlarmHandleType.dwHandleType |= (m_bHandleType3 << 2);
	lpHideAlarm->strHideAlarmHandleType.dwHandleType |= (m_bHandleType4 << 3);
	lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[0] = m_bAlarmOut1;
	lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[1] = m_bAlarmOut2;
	lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[2] = m_bAlarmOut3;
	lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[3] = m_bAlarmOut4;
	lpHideAlarm->dwEnableHideAlarm = m_SensitiveCtrl.GetCurSel()+1;		//2005-01-04	
}

void CRemoteHideAlarm::OnCheckhandletype4() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	EnableControl(m_bHandleType4);
}

void CRemoteHideAlarm::OnSelchangeComboweekday() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int	i = m_WeekDayCtrl.GetCurSel();	
	m_iHour11 = lpHideAlarm->struAlarmTime[i][0].byStartHour;
	m_iMin11 = lpHideAlarm->struAlarmTime[i][0].byStartMin;
	m_iHour12 = lpHideAlarm->struAlarmTime[i][0].byStopHour;
	m_iMin12 = lpHideAlarm->struAlarmTime[i][0].byStopMin;
	m_iHour21 = lpHideAlarm->struAlarmTime[i][1].byStartHour;
	m_iMin21 = lpHideAlarm->struAlarmTime[i][1].byStartMin;
	m_iHour22 = lpHideAlarm->struAlarmTime[i][1].byStopHour;
	m_iMin22 = lpHideAlarm->struAlarmTime[i][1].byStopMin;
	m_iHour31 = lpHideAlarm->struAlarmTime[i][2].byStartHour;
	m_iMin31 = lpHideAlarm->struAlarmTime[i][2].byStartMin;
	m_iHour32 = lpHideAlarm->struAlarmTime[i][2].byStopHour;
	m_iMin32 = lpHideAlarm->struAlarmTime[i][2].byStopMin;
	m_iHour41 = lpHideAlarm->struAlarmTime[i][3].byStartHour;
	m_iMin41 = lpHideAlarm->struAlarmTime[i][3].byStartMin;
	m_iHour42 = lpHideAlarm->struAlarmTime[i][3].byStopHour;
	m_iMin42 = lpHideAlarm->struAlarmTime[i][3].byStopMin;
	
	UpdateData(FALSE);
}

void CRemoteHideAlarm::OnHidealarmtimecopy() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int j,k;
	int i = m_WeekDayCtrl.GetCurSel();
	int m_nCopyTime = m_CopyTimeCtrl.GetCurSel() - 1;
	
	if(m_nCopyTime == -1)
	{
		for(j=0; j<MAX_DAYS; j++)
		{
			if(j == i)
				continue;
			for(k=0; k<MAX_TIMESEGMENT; k++)
			{
				memcpy(&(lpHideAlarm->struAlarmTime[j][k]), &(lpHideAlarm->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME));
			}
		}
	}
	else
	{
		for(k=0; k<MAX_TIMESEGMENT; k++)
		{
			memcpy(&(lpHideAlarm->struAlarmTime[m_nCopyTime][k]), &(lpHideAlarm->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME));
		}
	}
	
}

void CRemoteHideAlarm::OnHidealarmtimeok() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(!F_TimeTest())
		return;
	int	i = m_WeekDayCtrl.GetCurSel();	
	lpHideAlarm->struAlarmTime[i][0].byStartHour = m_iHour11;
	lpHideAlarm->struAlarmTime[i][0].byStartMin = m_iMin11;
	lpHideAlarm->struAlarmTime[i][0].byStopHour = m_iHour12;
	lpHideAlarm->struAlarmTime[i][0].byStopMin = m_iMin12;
	lpHideAlarm->struAlarmTime[i][1].byStartHour = m_iHour21;
	lpHideAlarm->struAlarmTime[i][1].byStartMin = m_iMin21;
	lpHideAlarm->struAlarmTime[i][1].byStopHour = m_iHour22;
	lpHideAlarm->struAlarmTime[i][1].byStopMin = m_iMin22;
	lpHideAlarm->struAlarmTime[i][2].byStartHour = m_iHour31;
	lpHideAlarm->struAlarmTime[i][2].byStartMin = m_iMin31;
	lpHideAlarm->struAlarmTime[i][2].byStopHour = m_iHour32;
	lpHideAlarm->struAlarmTime[i][2].byStopMin = m_iMin32;
	lpHideAlarm->struAlarmTime[i][3].byStartHour = m_iHour41;
	lpHideAlarm->struAlarmTime[i][3].byStartMin = m_iMin41;
	lpHideAlarm->struAlarmTime[i][3].byStopHour = m_iHour42;
	lpHideAlarm->struAlarmTime[i][3].byStopMin = m_iMin42;
	
	GetDlgItem(IDC_HIDEALARMTIMECOPY)->EnableWindow(TRUE);
}

BOOL CRemoteHideAlarm::F_TimeTest()
{
	int i, j;
	WORD wStartTime[4], wStopTime[4];
	
	UpdateData(TRUE);
	if( (m_iHour11 < 0) || (m_iHour11 > 24) || (m_iHour12 < 0) || (m_iHour12 > 24) ||	\
		(m_iHour21 < 0) || (m_iHour21 > 24) || (m_iHour22 < 0) || (m_iHour22 > 24) ||	\
		(m_iHour31 < 0) || (m_iHour31 > 24) || (m_iHour32 < 0) || (m_iHour32 > 24) ||	\
		(m_iHour41 < 0) || (m_iHour41 > 24) || (m_iHour42 < 0) || (m_iHour42 > 24) )
	{
		AfxMessageBox("Hour range must be 0 -- 24!");
		return FALSE;
	}
	if( (m_iMin11 < 0) || (m_iMin11 > 60) || (m_iMin12 < 0) || (m_iMin12 > 60) ||	\
		(m_iMin21 < 0) || (m_iMin21 > 60) || (m_iMin22 < 0) || (m_iMin22 > 60) ||	\
		(m_iMin31 < 0) || (m_iMin31 > 60) || (m_iMin32 < 0) || (m_iMin32 > 60) ||	\
		(m_iMin41 < 0) || (m_iMin41 > 60) || (m_iMin42 < 0) || (m_iMin42 > 60) )
	{
		AfxMessageBox("Minute range must be 0 -- 60!");
		return FALSE;
	}
	wStartTime[0] = m_iHour11 * 100 + m_iMin11;
	wStartTime[1] = m_iHour21 * 100 + m_iMin21;
	wStartTime[2] = m_iHour31 * 100 + m_iMin31;
	wStartTime[3] = m_iHour41 * 100 + m_iMin41;
	wStopTime[0] = m_iHour12 * 100 + m_iMin12;
	wStopTime[1] = m_iHour22 * 100 + m_iMin22;
	wStopTime[2] = m_iHour32 * 100 + m_iMin32;
	wStopTime[3] = m_iHour42 * 100 + m_iMin42;
	for(i = 0; i < 4; i++)
	{
		if( (wStartTime[i] > 2400) || (wStopTime[i] > 2400) )
		{
			AfxMessageBox("Record time must not exceed 24:00!");
			return FALSE;
		}
		if(wStartTime[i] > wStopTime[i])
		{
			AfxMessageBox("Start time must be less than stop time!");
			return FALSE;
		}
		for(j = 0; j < 4; j++)
		{
			if (i == j)
				continue;
			if( (wStartTime[i] > wStartTime[j]) && (wStartTime[i] < wStopTime[j]) ||	\
				(wStopTime[i] > wStartTime[j]) && (wStopTime[i] < wStopTime[j]) )
			{
				AfxMessageBox("Record period must not repeat!");
				return FALSE;
			}
		}
	}
	return TRUE;
}

⌨️ 快捷键说明

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