// RemoteHideAlarm.cpp : implementation file // #include "stdafx.h" #include "StoneU_HC_OCX.h" #include "RemoteHideAlarm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern LPNET_DVR_HIDEALARM lpHideAlarm; RECT g_ShowRect; RECT g_MouseRect; //BYTE byHideScope[18][22]; void CALLBACK DrawFunShow0(long nPort,HDC hDc,DWORD nUser) { CRect rect; int i = 0,j = 0; CPoint point; rect.left = g_MouseRect.left; rect.top = g_MouseRect.top; rect.right = g_MouseRect.right; rect.bottom = g_MouseRect.bottom; ::DrawEdge(hDc,&rect,BDR_SUNKENOUTER,BF_RECT); /* for(i = 0;i<18;i++) { for(j = 0;j<22;j++) { if(byHideScope[i][j] == 1) { point.x = j*16; point.y = i*16; rect.left = point.x; rect.top = point.y; rect.right = point.x + 16; rect.bottom = point.y + 16; //HBRUSH hBrush=::CreateSolidBrush(COLORREF(0xffffff)); //::FillRect(hDc, &rect, hBrush); ::DrawEdge(hDc,&rect,BDR_SUNKENOUTER,BF_RECT); } } } */ SetBkMode(hDc,TRANSPARENT); } void CALLBACK DrawFun1(long nPort,HDC hDc,DWORD nUser) { ::DrawEdge(hDc,&g_ShowRect,BDR_SUNKENOUTER,BF_RECT); SetBkMode(hDc,TRANSPARENT); } ///////////////////////////////////////////////////////////////////////////// // CRemoteHideAlarm dialog CRemoteHideAlarm::CRemoteHideAlarm(CWnd* pParent /*=NULL*/) : CDialog(CRemoteHideAlarm::IDD, pParent) { //{{AFX_DATA_INIT(CRemoteHideAlarm) m_bHandleType1 = FALSE; m_bHandleType2 = FALSE; m_bHandleType3 = FALSE; m_bHandleType4 = FALSE; m_bGetHideAlarm = FALSE; m_bSetHideAlarm = FALSE; m_bAlarmOut1 = FALSE; m_bAlarmOut2 = FALSE; m_bAlarmOut3 = FALSE; m_bAlarmOut4 = FALSE; m_iHour11 = 0; m_iHour12 = 0; m_iHour21 = 0; m_iHour31 = 0; m_iHour22 = 0; m_iHour32 = 0; m_iHour41 = 0; m_iHour42 = 0; m_iMin11 = 0; m_iMin12 = 0; m_iMin21 = 0; m_iMin22 = 0; m_iMin31 = 0; m_iMin32 = 0; m_iMin41 = 0; m_iMin42 = 0; //}}AFX_DATA_INIT } void CRemoteHideAlarm::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRemoteHideAlarm) DDX_Control(pDX, IDC_COMBOWEEKDAY, m_WeekDayCtrl); DDX_Control(pDX, IDC_COMBOCOPYTIME, m_CopyTimeCtrl); DDX_Control(pDX, IDC_COMBO1, m_SensitiveCtrl); DDX_Control(pDX, IDC_DETECTPIC, m_DetectPic); DDX_Check(pDX, IDC_CHECKHANDLETYPE1, m_bHandleType1); DDX_Check(pDX, IDC_CHECKHANDLETYPE2, m_bHandleType2); DDX_Check(pDX, IDC_CHECKHANDLETYPE3, m_bHandleType3); DDX_Check(pDX, IDC_CHECKHANDLETYPE4, m_bHandleType4); DDX_Check(pDX, IDC_CHECKHIDEALARMGETRECT, m_bGetHideAlarm); DDX_Check(pDX, IDC_CHECKHIDEALARMSETRECT, m_bSetHideAlarm); 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_Text(pDX, IDC_EDITHOUR11, m_iHour11); DDX_Text(pDX, IDC_EDITHOUR12, m_iHour12); DDX_Text(pDX, IDC_EDITHOUR21, m_iHour21); DDX_Text(pDX, IDC_EDITHOUR31, m_iHour31); DDX_Text(pDX, IDC_EDITHOUR22, m_iHour22); 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_EDITMIN22, m_iMin22); DDX_Text(pDX, IDC_EDITMIN31, m_iMin31); DDX_Text(pDX, IDC_EDITMIN32, m_iMin32); DDX_Text(pDX, IDC_EDITMIN41, m_iMin41); DDX_Text(pDX, IDC_EDITMIN42, m_iMin42); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRemoteHideAlarm, CDialog) //{{AFX_MSG_MAP(CRemoteHideAlarm) ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_BN_CLICKED(IDC_CHECKHIDEALARMGETRECT, OnCheckhidealarmgetrect) ON_BN_CLICKED(IDC_CHECKHIDEALARMSETRECT, OnCheckhidealarmsetrect) ON_BN_CLICKED(IDEXIT, OnExit) ON_BN_CLICKED(IDHIDEALARMOK, OnHidealarmok) ON_BN_CLICKED(IDC_CHECKHANDLETYPE4, OnCheckhandletype4) ON_BN_CLICKED(IDC_HIDEALARMTIMEOK, OnHidealarmtimeok) ON_BN_CLICKED(IDC_HIDEALARMTIMECOPY, OnHidealarmtimecopy) ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRemoteHideAlarm message handlers BOOL CRemoteHideAlarm::OnInitDialog() { CDialog::OnInitDialog(); // int i,j; // TODO: Add extra initialization here m_DetectPic.MoveWindow(DETECTPICLEFT,DETECTPICTOP, 352, 288); /* for(i = 0; i < 18; i++) { for(j = 0; j < 22; j++) byHideScope[i][j] = 0; } */ g_MouseRect.left = lpHideAlarm->wHideAlarmAreaTopLeftX/2; g_MouseRect.top = lpHideAlarm->wHideAlarmAreaTopLeftY/2; g_MouseRect.bottom = (lpHideAlarm->wHideAlarmAreaTopLeftY + lpHideAlarm->wHideAlarmAreaHeight)/2; g_MouseRect.right = (lpHideAlarm->wHideAlarmAreaTopLeftX + lpHideAlarm->wHideAlarmAreaWidth)/2; /* for(i = g_MouseRect.top/16; i < g_MouseRect.bottom/16; i++) { for(j = g_MouseRect.left/16; j < g_MouseRect.right/16; j++) { byHideScope[i][j] = 1; } } */ NET_DVR_CLIENTINFO playstru; playstru.hPlayWnd = m_DetectPic.GetSafeHwnd(); playstru.lChannel = m_iChannel; playstru.lLinkMode = 0; playstru.sMultiCastIP = ""; m_iPlayhandle = NET_DVR_RealPlay(m_lServerID, &playstru); if(m_iPlayhandle == -1) { CString sTemp; sTemp.Format("网络连接失败!"); MessageBox(sTemp, "温馨提示", MB_ICONINFORMATION); } m_bDrawdetect = FALSE; m_bHandleType1 = lpHideAlarm->strHideAlarmHandleType.dwHandleType &0x01; m_bHandleType2 = (lpHideAlarm->strHideAlarmHandleType.dwHandleType>>1)&0x01; m_bHandleType3 = (lpHideAlarm->strHideAlarmHandleType.dwHandleType>>2)&0x01; m_bHandleType4 = (lpHideAlarm->strHideAlarmHandleType.dwHandleType>>3)&0x01; EnableControl(m_bHandleType4); m_WeekDayCtrl.SetCurSel(0); m_CopyTimeCtrl.SetCurSel(0); m_iHour11 = lpHideAlarm->struAlarmTime[0][0].byStartHour; m_iMin11 = lpHideAlarm->struAlarmTime[0][0].byStartMin; m_iHour12 = lpHideAlarm->struAlarmTime[0][0].byStopHour; m_iMin12 = lpHideAlarm->struAlarmTime[0][0].byStopMin; m_iHour21 = lpHideAlarm->struAlarmTime[0][1].byStartHour; m_iMin21 = lpHideAlarm->struAlarmTime[0][1].byStartMin; m_iHour22 = lpHideAlarm->struAlarmTime[0][1].byStopHour; m_iMin22 = lpHideAlarm->struAlarmTime[0][1].byStopMin; m_iHour31 = lpHideAlarm->struAlarmTime[0][2].byStartHour; m_iMin31 = lpHideAlarm->struAlarmTime[0][2].byStartMin; m_iHour32 = lpHideAlarm->struAlarmTime[0][2].byStopHour; m_iMin32 = lpHideAlarm->struAlarmTime[0][2].byStopMin; m_iHour41 = lpHideAlarm->struAlarmTime[0][3].byStartHour; m_iMin41 = lpHideAlarm->struAlarmTime[0][3].byStartMin; m_iHour42 = lpHideAlarm->struAlarmTime[0][3].byStopHour; m_iMin42 = lpHideAlarm->struAlarmTime[0][3].byStopMin; GetDlgItem(IDC_CHECKHIDEALARMGETRECT)->EnableWindow(TRUE); GetDlgItem(IDC_CHECKHIDEALARMSETRECT)->EnableWindow(TRUE); //zxy 2005-01-04 if(lpHideAlarm->dwEnableHideAlarm > 0) { m_SensitiveCtrl.SetCurSel(lpHideAlarm->dwEnableHideAlarm -1); } else { m_SensitiveCtrl.SetCurSel(0); } UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CRemoteHideAlarm::OnOK() { // TODO: Add extra validation here //CDialog::OnOK(); } void CRemoteHideAlarm::OnCancel() { // TODO: Add extra cleanup here //CDialog::OnCancel(); } void CRemoteHideAlarm::EnableControl(BOOL bEnable) { if(m_dwAlarmOutNum >= 1) { GetDlgItem(IDC_CHKALARMOUT1)->EnableWindow(bEnable); m_bAlarmOut1 = lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[0]; } if(m_dwAlarmOutNum >= 2) { GetDlgItem(IDC_CHKALARMOUT2)->EnableWindow(bEnable); m_bAlarmOut2 = lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[1]; } if(m_dwAlarmOutNum >= 3) { GetDlgItem(IDC_CHKALARMOUT3)->EnableWindow(bEnable); m_bAlarmOut3 = lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[2]; } if(m_dwAlarmOutNum >= 4) { GetDlgItem(IDC_CHKALARMOUT4)->EnableWindow(bEnable); m_bAlarmOut4 = lpHideAlarm->strHideAlarmHandleType.byRelAlarmOut[3]; } } void CRemoteHideAlarm::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (m_bDrawdetect) { if(MK_CONTROL&nFlags) { NET_DVR_RigisterDrawFun(m_iPlayhandle, DrawFun1, 0); point.x -= 30; point.y -= 10; if(point.x < 0) point.x = 0; g_MouseRect.left=point.x/16*16; if(point.y < 0) point.y = 0; g_MouseRect.top=point.y/16*16; g_MouseRect.right=g_MouseRect.left; g_MouseRect.bottom=g_MouseRect.top; POINT tPoint=point; g_ShowRect.left=tPoint.x/16*16; g_ShowRect.top=tPoint.y/16*16; g_ShowRect.right=tPoint.x/16*16+1; g_ShowRect.bottom=tPoint.y/16*16+1; } } CDialog::OnLButtonDown(nFlags, point); } void CRemoteHideAlarm::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (m_bDrawdetect) { if(MK_CONTROL&nFlags&&MK_LBUTTON&nFlags) { 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; //zxy 2005-01-04 lpHideAlarm->dwEnableHideAlarm = m_SensitiveCtrl.GetCurSel()+1; } void CRemoteHideAlarm::OnCheckhandletype4() { // TODO: Add your control notification handler code here UpdateData(TRUE); EnableControl(m_bHandleType4); } 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); } 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; jstruAlarmTime[j][k]), &(lpHideAlarm->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME)); } } } else { for(k=0; kstruAlarmTime[m_nCopyTime][k]), &(lpHideAlarm->struAlarmTime[i][k]), sizeof(NET_DVR_SCHEDTIME)); } } } 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) ) { MessageBox("小时的范围在0 -- 24之间!", "温馨提示", MB_ICONINFORMATION); 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) ) { MessageBox("分钟的范围在0 -- 60之间!", "温馨提示", MB_ICONINFORMATION); 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) ) { MessageBox("布防时间不能超过24:00!", "温馨提示", MB_ICONINFORMATION); return FALSE; } if(wStartTime[i] > wStopTime[i]) { MessageBox("布防起始时间不能大于停止时间!", "温馨提示", MB_ICONINFORMATION); 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]) ) { MessageBox("布防时间段不能重复!", "温馨提示", MB_ICONINFORMATION); return FALSE; } } } return TRUE; } 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); }