void CConfigAlarmMotion::OnBtnArea() { CConfigAlarmMotionArea areaDlg; areaDlg.SetArea((BYTE*)m_motionCFG[m_chlIdx].byDetected); if (IDOK == areaDlg.DoModal()) { memcpy(m_motionCFG[m_chlIdx].byDetected, areaDlg.GetArea(), DH_MOTION_ROW*DH_MOTION_COL); } }
/* * Function: Set motion detection zone * Detection zone. Total row * cooumn. It is a planar array, e,g * byDetected[DH_MOTION_ROW][DH_MOTION_COL] of structure DH_MOTION_DETECT_CFG */ void CAlarmMotion::OnBtnArea() { // TODO: Add your control notification handler code here int nIndex = m_ctlChannel.GetCurSel(); if(CB_ERR != nIndex) { int nNum = m_ctlChannel.GetItemData(nIndex); CConfigAlarmMotionArea areaDlg; if (m_pstuMotionInfo) { if (m_pstuMotionInfo[nNum].nVersion == 1 && m_pstuMotionInfo[nNum].abWindow) { areaDlg.SetAreaEx(&m_pstuMotionInfo[nNum]); if (IDOK == areaDlg.DoModal()) { } } else { areaDlg.SetArea((BYTE*)m_pstuMotionInfo[nNum].byRegion, m_pstuMotionInfo[nNum].nMotionRow, m_pstuMotionInfo[nNum].nMotionCol); if (IDOK == areaDlg.DoModal()) { memcpy(m_pstuMotionInfo[nNum].byRegion, areaDlg.GetArea(), DH_MOTION_ROW*DH_MOTION_COL); } } } } else { MessageBox(ConvertString("Please select channel!"), ConvertString("Prompt")); } }
LRESULT CConfigAlarmMotionAreaBlock::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class CConfigAlarmMotionArea *pMap = (CConfigAlarmMotionArea *)GetParent(); if(pMap) { switch(message) { case WM_LBUTTONDOWN: pMap->RecordPoint(m_byX, m_byY); break; case WM_LBUTTONUP: pMap->ReleasePoint(); break; case WM_MOUSEMOVE: pMap->MovePoint(wParam, m_byX, m_byY); default: break; } } return CWnd::DefWindowProc(message, wParam, lParam); }