📄 videolost.cpp
字号:
// VideoLost.cpp : implementation file
//
#include "stdafx.h"
#include "newclient.h"
#include "VideoLost.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern LPNET_DVR_VILOST lpVILost;
/////////////////////////////////////////////////////////////////////////////
// CVideoLost dialog
CVideoLost::CVideoLost(CWnd* pParent /*=NULL*/)
: CDialog(CVideoLost::IDD, pParent)
{
//{{AFX_DATA_INIT(CVideoLost)
m_bAlarmOut1 = FALSE;
m_bAlarmOut2 = FALSE;
m_bAlarmOut3 = FALSE;
m_bAlarmOut4 = FALSE;
m_bHandleType1 = FALSE;
m_bHandleType2 = FALSE;
m_bHandleType3 = FALSE;
m_bHandleType4 = FALSE;
m_iHour11 = 0;
m_iHour12 = 0;
m_iHour21 = 0;
m_iHour22 = 0;
m_iHour31 = 0;
m_iHour32 = 0;
m_iHour41 = 0;
m_iHour42 = 0;
m_iMin11 = 0;
m_iMin12 = 0;
m_iMin21 = 0;
m_iMin31 = 0;
m_iMin22 = 0;
m_iMin41 = 0;
m_iMin32 = 0;
m_iMin42 = 0;
//}}AFX_DATA_INIT
}
void CVideoLost::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVideoLost)
DDX_Control(pDX, IDC_COMBOWEEKDAY, m_WeekDayCtrl);
DDX_Control(pDX, IDC_COMBOCOPYTIME, m_CopyTimeCtrl);
DDX_Check(pDX, IDC_CHKALARMOUT1, m_bAlarmOut1);
DDX_Check(pDX, IDC_CHKALARMOUT2, m_bAlarmOut2);
DDX_Check(pDX, IDC_CHKALARMOUT3, m_bAlarmOut3);
DDX_Check(pDX, IDC_CHKALARMOUT4, m_bAlarmOut4);
DDX_Check(pDX, IDC_CHKHANDLE1, m_bHandleType1);
DDX_Check(pDX, IDC_CHKHANDLE2, m_bHandleType2);
DDX_Check(pDX, IDC_CHKHANDLE3, m_bHandleType3);
DDX_Check(pDX, IDC_CHKHANDLE4, m_bHandleType4);
DDX_Text(pDX, IDC_EDITHOUR11, m_iHour11);
DDX_Text(pDX, IDC_EDITHOUR12, m_iHour12);
DDX_Text(pDX, IDC_EDITHOUR21, m_iHour21);
DDX_Text(pDX, IDC_EDITHOUR22, m_iHour22);
DDX_Text(pDX, IDC_EDITHOUR31, m_iHour31);
DDX_Text(pDX, IDC_EDITHOUR32, m_iHour32);
DDX_Text(pDX, IDC_EDITHOUR41, m_iHour41);
DDX_Text(pDX, IDC_EDITHOUR42, m_iHour42);
DDX_Text(pDX, IDC_EDITMIN11, m_iMin11);
DDX_Text(pDX, IDC_EDITMIN12, m_iMin12);
DDX_Text(pDX, IDC_EDITMIN21, m_iMin21);
DDX_Text(pDX, IDC_EDITMIN31, m_iMin31);
DDX_Text(pDX, IDC_EDITMIN22, m_iMin22);
DDX_Text(pDX, IDC_EDITMIN41, m_iMin41);
DDX_Text(pDX, IDC_EDITMIN32, m_iMin32);
DDX_Text(pDX, IDC_EDITMIN42, m_iMin42);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVideoLost, CDialog)
//{{AFX_MSG_MAP(CVideoLost)
ON_BN_CLICKED(IDC_BUTOK, OnButok)
ON_BN_CLICKED(IDC_BUTEXIT, OnButexit)
ON_BN_CLICKED(IDC_CHKHANDLE4, OnChkhandle4)
ON_BN_CLICKED(IDC_VILOSTTIMEOK, OnVilosttimeok)
ON_BN_CLICKED(IDC_VILOSTTIMECOPY, OnVilosttimecopy)
ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVideoLost message handlers
BOOL CVideoLost::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_bHandleType1 = lpVILost->strVILostHandleType.dwHandleType &0x01;
m_bHandleType2 = (lpVILost->strVILostHandleType.dwHandleType>>1)&0x01;
m_bHandleType3 = (lpVILost->strVILostHandleType.dwHandleType>>2)&0x01;
m_bHandleType4 = (lpVILost->strVILostHandleType.dwHandleType>>3)&0x01;
EnableControl(m_bHandleType4);
m_WeekDayCtrl.SetCurSel(0);
m_CopyTimeCtrl.SetCurSel(0);
m_iHour11 = lpVILost->struAlarmTime[0][0].byStartHour;
m_iMin11 = lpVILost->struAlarmTime[0][0].byStartMin;
m_iHour12 = lpVILost->struAlarmTime[0][0].byStopHour;
m_iMin12 = lpVILost->struAlarmTime[0][0].byStopMin;
m_iHour21 = lpVILost->struAlarmTime[0][1].byStartHour;
m_iMin21 = lpVILost->struAlarmTime[0][1].byStartMin;
m_iHour22 = lpVILost->struAlarmTime[0][1].byStopHour;
m_iMin22 = lpVILost->struAlarmTime[0][1].byStopMin;
m_iHour31 = lpVILost->struAlarmTime[0][2].byStartHour;
m_iMin31 = lpVILost->struAlarmTime[0][2].byStartMin;
m_iHour32 = lpVILost->struAlarmTime[0][2].byStopHour;
m_iMin32 = lpVILost->struAlarmTime[0][2].byStopMin;
m_iHour41 = lpVILost->struAlarmTime[0][3].byStartHour;
m_iMin41 = lpVILost->struAlarmTime[0][3].byStartMin;
m_iHour42 = lpVILost->struAlarmTime[0][3].byStopHour;
m_iMin42 = lpVILost->struAlarmTime[0][3].byStopMin;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CVideoLost::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
}
void CVideoLost::OnCancel()
{
// TODO: Add extra cleanup here
//CDialog::OnCancel();
}
void CVideoLost::OnButok()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(!F_TimeTest())
return;
int i = m_WeekDayCtrl.GetCurSel();
lpVILost->struAlarmTime[i][0].byStartHour = m_iHour11;
lpVILost->struAlarmTime[i][0].byStartMin = m_iMin11;
lpVILost->struAlarmTime[i][0].byStopHour = m_iHour12;
lpVILost->struAlarmTime[i][0].byStopMin = m_iMin12;
lpVILost->struAlarmTime[i][1].byStartHour = m_iHour21;
lpVILost->struAlarmTime[i][1].byStartMin = m_iMin21;
lpVILost->struAlarmTime[i][1].byStopHour = m_iHour22;
lpVILost->struAlarmTime[i][1].byStopMin = m_iMin22;
lpVILost->struAlarmTime[i][2].byStartHour = m_iHour31;
lpVILost->struAlarmTime[i][2].byStartMin = m_iMin31;
lpVILost->struAlarmTime[i][2].byStopHour = m_iHour32;
lpVILost->struAlarmTime[i][2].byStopMin = m_iMin32;
lpVILost->struAlarmTime[i][3].byStartHour = m_iHour41;
lpVILost->struAlarmTime[i][3].byStartMin = m_iMin41;
lpVILost->struAlarmTime[i][3].byStopHour = m_iHour42;
lpVILost->struAlarmTime[i][3].byStopMin = m_iMin42;
lpVILost->strVILostHandleType.dwHandleType = 0;
lpVILost->strVILostHandleType.dwHandleType |= (m_bHandleType1 << 0);
lpVILost->strVILostHandleType.dwHandleType |= (m_bHandleType2 << 1);
lpVILost->strVILostHandleType.dwHandleType |= (m_bHandleType3 << 2);
lpVILost->strVILostHandleType.dwHandleType |= (m_bHandleType4 << 3);
lpVILost->strVILostHandleType.byRelAlarmOut[0] = m_bAlarmOut1;
lpVILost->strVILostHandleType.byRelAlarmOut[1] = m_bAlarmOut2;
lpVILost->strVILostHandleType.byRelAlarmOut[2] = m_bAlarmOut3;
lpVILost->strVILostHandleType.byRelAlarmOut[3] = m_bAlarmOut4;
CDialog::OnOK();
}
void CVideoLost::OnButexit()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CVideoLost::OnChkhandle4()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
EnableControl(m_bHandleType4);
}
void CVideoLost::EnableControl(BOOL bEnable)
{
if(m_dwAlarmOutNum >= 1)
{
GetDlgItem(IDC_CHKALARMOUT1)->EnableWindow(bEnable);
m_bAlarmOut1 = lpVILost->strVILostHandleType.byRelAlarmOut[0];
}
if(m_dwAlarmOutNum >= 2)
{
GetDlgItem(IDC_CHKALARMOUT2)->EnableWindow(bEnable);
m_bAlarmOut2 = lpVILost->strVILostHandleType.byRelAlarmOut[1];
}
if(m_dwAlarmOutNum >= 3)
{
GetDlgItem(IDC_CHKALARMOUT3)->EnableWindow(bEnable);
m_bAlarmOut3 = lpVILost->strVILostHandleType.byRelAlarmOut[2];
}
if(m_dwAlarmOutNum >= 4)
{
GetDlgItem(IDC_CHKALARMOUT4)->EnableWindow(bEnable);
m_bAlarmOut4 = lpVILost->strVILostHandleType.byRelAlarmOut[3];
}
}
void CVideoLost::OnVilosttimeok()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(!F_TimeTest())
return;
int i = m_WeekDayCtrl.GetCurSel();
lpVILost->struAlarmTime[i][0].byStartHour = m_iHour11;
lpVILost->struAlarmTime[i][0].byStartMin = m_iMin11;
lpVILost->struAlarmTime[i][0].byStopHour = m_iHour12;
lpVILost->struAlarmTime[i][0].byStopMin = m_iMin12;
lpVILost->struAlarmTime[i][1].byStartHour = m_iHour21;
lpVILost->struAlarmTime[i][1].byStartMin = m_iMin21;
lpVILost->struAlarmTime[i][1].byStopHour = m_iHour22;
lpVILost->struAlarmTime[i][1].byStopMin = m_iMin22;
lpVILost->struAlarmTime[i][2].byStartHour = m_iHour31;
lpVILost->struAlarmTime[i][2].byStartMin = m_iMin31;
lpVILost->struAlarmTime[i][2].byStopHour = m_iHour32;
lpVILost->struAlarmTime[i][2].byStopMin = m_iMin32;
lpVILost->struAlarmTime[i][3].byStartHour = m_iHour41;
lpVILost->struAlarmTime[i][3].byStartMin = m_iMin41;
lpVILost->struAlarmTime[i][3].byStopHour = m_iHour42;
lpVILost->struAlarmTime[i][3].byStopMin = m_iMin42;
GetDlgItem(IDC_VILOSTTIMECOPY)->EnableWindow(TRUE);
}
void CVideoLost::OnVilosttimecopy()
{
// 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(&(lpVILost->struAlarmTime[j][k]), &(lpVILost->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME));
}
}
}
else
{
for(k=0; k<MAX_TIMESEGMENT; k++)
{
memcpy(&(lpVILost->struAlarmTime[m_nCopyTime][k]), &(lpVILost->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME));
}
}
}
void CVideoLost::OnSelchangeComboweekday()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int i = m_WeekDayCtrl.GetCurSel();
m_iHour11 = lpVILost->struAlarmTime[i][0].byStartHour;
m_iMin11 = lpVILost->struAlarmTime[i][0].byStartMin;
m_iHour12 = lpVILost->struAlarmTime[i][0].byStopHour;
m_iMin12 = lpVILost->struAlarmTime[i][0].byStopMin;
m_iHour21 = lpVILost->struAlarmTime[i][1].byStartHour;
m_iMin21 = lpVILost->struAlarmTime[i][1].byStartMin;
m_iHour22 = lpVILost->struAlarmTime[i][1].byStopHour;
m_iMin22 = lpVILost->struAlarmTime[i][1].byStopMin;
m_iHour31 = lpVILost->struAlarmTime[i][2].byStartHour;
m_iMin31 = lpVILost->struAlarmTime[i][2].byStartMin;
m_iHour32 = lpVILost->struAlarmTime[i][2].byStopHour;
m_iMin32 = lpVILost->struAlarmTime[i][2].byStopMin;
m_iHour41 = lpVILost->struAlarmTime[i][3].byStartHour;
m_iMin41 = lpVILost->struAlarmTime[i][3].byStartMin;
m_iHour42 = lpVILost->struAlarmTime[i][3].byStopHour;
m_iMin42 = lpVILost->struAlarmTime[i][3].byStopMin;
UpdateData(FALSE);
}
BOOL CVideoLost::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 + -