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

📄 dvrmanagerdlg.cpp

📁 实时监控
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		else
		{
			switch_video(vw_mode(last_mgr_mode)); 
			redraw_swp();
			return TRUE;
		}
	}
	if( msg == WM_VIDEO_ALARM_SHOW)
	{
			mgr->hide_all();
			mgr = &mgr1;
			mgr1.clear();
			mgr1.add(p);
			redraw_swp();
			return TRUE;
	}
	if( msg == WM_RBUTTONDOWN )
	{
//		CString str;
//		mgr->sub_wnds_count();
		if(p->drawing_grid)
			return 0;
		if( p->is_video_opened() )
			rlogin.PostMessage(WM_MENU_CLOSE,(WPARAM)p->index(),NULL);
		else
			rlogin.PostMessage(WM_SHOW_MENU,(WPARAM)p->index(),NULL);
//		AfxMessageBox("2");
//		p->draw_sel();
	}

	return 0;
}

//##ModelId=3F90BABA02AC
void CDvrManagerDlg::OnSetup()
{
	OnNext();
}

//##ModelId=3F90BABA02F2
LRESULT CDvrManagerDlg::OnFilterAccel(WPARAM w, LPARAM l)
{
	return TranslateAccelerator(m_hWnd, accel, (LPMSG)w);
}

//##ModelId=3F90BABA023E
BOOL CDvrManagerDlg::PreTranslateMessage(MSG* pMsg) 
{
/*	if( pMsg->message == WM_RBUTTONDOWN )
	{
		if( is_fulled() )
		{
		OnFullscr();
			return TRUE;
		}
	}*/
	if( OnFilterAccel((WPARAM)pMsg, 0) )
		return TRUE;

	return CBDialog::PreTranslateMessage(pMsg);
}

//##ModelId=3F90BABA0003
void CDvrManagerDlg::join_right(subdlg x)
{
	if( cur_right == x )
		return ;

	if(cur_right)
	{
		if( !cur_right->can_leave() )
			return;

		cur_right->leave();
	}
	cur_right = x;
	x->join(this, ID_RIGHT_TOOLBAR);
}

//##ModelId=3F90BABA005D
bool CDvrManagerDlg::is_fulled()
{
	return !toolbar_btm.IsWindowVisible();
//	return !toolbar_time.IsWindowVisible();
}

/*
 *	设置对话框切换 前一个
 */
//##ModelId=3F90BABB004B
void CDvrManagerDlg::OnPrev() 
{
	check_video_channel();
	
	if( is_fulled() )
		return;

	int idx = 0;
	for( int i=0; i<rts.size(); i++ )
	{
		if( rts[i] == cur_right )
		{
			idx = i-1;
			if( idx < 0 )
				idx = rts.size()-1;
			break;
		}
	}
	join_right(rts[idx]);
}

//##ModelId=3F90BABB0055
void CDvrManagerDlg::OnNext() 
{
	check_video_channel();

	if( is_fulled() )
		return;
	
	int idx = 0;
	for( int i=0; i<rts.size(); i++ )
	{
		if( rts[i] == cur_right )
		{
			idx = i+1;
			idx %= rts.size();
			break;
		}
	}

	join_right(rts[idx]);
}

//##ModelId=3F90BABA03C5
void CDvrManagerDlg::OnTimer(UINT nIDEvent) 
{
	if (nIDEvent == 31)  { //auto switch video...
		check_video_channel() ;

		int idx=(*mgr)[0]->index();
		int cnt = mgr->sub_wnds_count();
		for (int kk=0;kk<vw_count;kk++)  { //sure the first window open...
			++idx %= vw_count ;
			if (vw[idx].is_video_opened())
				break ;
		}
		mgr->hide_all();
		mgr->clear();
		for( int j=0; j<cnt; j++ )
		{
			int i=0;
			i = (idx+j) % vw_count;
			mgr->add(vw[i]);
		}
		redraw_swp() ;
	}
/*	else if (nIDEvent == 1)  {
		KillTimer(nIDEvent) ;
	}*/
	CBDialog::OnTimer(nIDEvent);
}

//##ModelId=3F90BABA0324
LRESULT CDvrManagerDlg::OnBalloon(WPARAM w, LPARAM l)
{
	balloon_txt* b = (balloon_txt*)w;

//	if( b->icon == IDI_INFORMATION )
//		MessageBeep(MB_ICONINFORMATION);
//	if( b->icon == IDI_WARNING )
//		MessageBeep(MB_ICONWARNING);
	
	CWnd* p = &toolbar_btm;
	CRect rc;
	p->GetClientRect(rc);

	CBalloonHelp::LaunchBalloon(
		b->title, 
		b->content, 
		rc.BottomRight(), 
		b->icon, 
		b->options | CBalloonHelp::unSHOW_INNER_SHADOW | CBalloonHelp::unCLOSE_ON_LBUTTON_DOWN,
		p, 
		_T(""), 
		b->timeout);

	delete b;
	return 0;
}

//##ModelId=3F90BABB005F
void CDvrManagerDlg::OnSnapshot()
{
	video_channel* vc = video_channel::current_sel();
	if( !vc->is_video_opened() )
	{
		warning_balloon(IDS_SNAPSHOT_WARNING);
		return;
	}

	vc->SendMessage(WM_SNAPSHOT);
}

//##ModelId=3F90BABB0069
void CDvrManagerDlg::OnSeq()
{
	if (auto_switch_timer)  {
		KillTimer(auto_switch_timer) ;
		auto_switch_timer = 0 ;
	}
	
	check_video_channel() ;
	
	int idx=(*mgr)[0]->index();
	int cnt = mgr->sub_wnds_count();
	for (int kk=0;kk<vw_count;kk++)  { //sure the first window open...
		++idx %= vw_count ;
		if (vw[idx].is_video_opened())
			break ;
	}

	mgr->hide_all();
	mgr->clear();
	for( int j=0; j<cnt; j++ )
	{
		int i=0;
		i = (idx+j) % vw_count;
		mgr->add(vw[i]);
	}

	redraw_swp();
}

//##ModelId=3F90BABA034C
LRESULT CDvrManagerDlg::OnLoggedOut(WPARAM w, LPARAM)
{
	for( int i=0; i<rts.size(); i++ )
	{
		subdlg& ref = rts[i];
		if( IsWindow(ref->m_hWnd) )
			ref->SendMessage(WM_LOGGED_OUT, w, 0);
	}

	LPCTSTR alias = (LPCTSTR)w;
	ULONG ip;
	USHORT port;
	get_addr(alias, ip, port);

	dlg_alarm.remove_alarm(ip, port);
	return 0;
}

#include "msgbox.h"
//##ModelId=3F90BABA036B
void CDvrManagerDlg::OnOK()
{
#ifndef _DEBUG
	if( IDOK != msgbox(IDS_EXIT, IDS_QUESTION, MB_OKCANCEL|MB_ICONQUESTION, this) )
		return;
#endif

	if(CRight_add_new::m_show_log_file)
	    CRight_add_new::m_show_log_file->PostMessage(ID_CLOSE_LOGWHOW);
	if (auto_switch_timer)  {
		KillTimer(auto_switch_timer) ;
		auto_switch_timer = 0 ;
	}
	dlg_alarm.DestroyWindow();
	CBDialog::OnOK();
}

void CDvrManagerDlg::OnMin()
{
	ShowWindow(SW_MINIMIZE);
}

//##ModelId=3F90BABA0376
void CDvrManagerDlg::OnCancel()
{
	OnOK();
}

void CDvrManagerDlg::OnSysCommand(UINT nID, LPARAM lParam) 
{
	if( nID == SC_CLOSE )
	{
		OnCancel();
	}
	CBDialog::OnSysCommand(nID, lParam);
}


void CDvrManagerDlg::OnFullscr()
{
	if( video_channel::current_sel()->is_fulled() )
		return ;

	if( is_fulled() )
	{
		GetDlgItem(ID_SCENE)->MoveWindow(21,20,801,651);
		GetDlgItem(ID_SCENE)->GetWindowRect(swp.rc);
		redraw_swp();

//		toolbar_time.ShowWindow(SW_SHOW);
		toolbar_btm.ShowWindow(SW_SHOW);
		cur_right->ShowWindow(SW_SHOW);
//		m_title.ShowWindow(SW_SHOW);

		RedrawWindow() ;
		return;
	}

//	toolbar_time.ShowWindow(SW_HIDE);
	toolbar_btm.ShowWindow(SW_HIDE);
//	m_title.ShowWindow(SW_HIDE);

	cur_right->ShowWindow(SW_HIDE);

//	mgr = &mgr9;
	GetClientRect(swp.rc);
	redraw_swp();

	RedrawWindow();

//	info_balloon(IDS_FULLSCR, -1);
}

void CDvrManagerDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CWnd* p = GetDlgItem(ID_TIME);
	if( !p )
		return;
	CRect rc;
	p->GetWindowRect(rc);
	ScreenToClient(rc);
	if( rc.PtInRect(point) )
	{
		CSplashWnd::ShowSplashScreen(this);
	}
	
	CBDialog::OnLButtonDown(nFlags, point);
}

LRESULT CDvrManagerDlg::on_mute(WPARAM w, LPARAM l)
{
	if( IsWindow(rlogin.m_hWnd) )
		return rlogin.SendMessage(WM_TOGGLE_MUTE, w,l);
	return 0;
}

/*
 *	从CDlgAlarm传来
 */
LRESULT CDvrManagerDlg::on_hide_alarm(WPARAM w, LPARAM)
{
	hide_alarm = true ;
	return 0 ;
}

void CDvrManagerDlg::on_open_alarm()
{
	if (::IsWindowVisible(dlg_alarm.m_hWnd))  {
		hide_alarm = true ;
		dlg_alarm.hide() ;
	}
	else  {
		hide_alarm = false ;
		dlg_alarm.show(this) ;
		//dlg_alarm.update_status() ;
	}
	toolbar_btm.stop_warning() ;
}

LRESULT CDvrManagerDlg::set_disk_info(WPARAM w, LPARAM)
{
	DISK_SPACE *m_disk = (DISK_SPACE *) w;
	dlg_alarm.set_disk_info(m_disk);

	return 0;
}

LRESULT CDvrManagerDlg::on_alarm(WPARAM w, LPARAM masks)
{
	ULONG ip = (ULONG)w ;
	TREC_ALARMINFO  *ptr = (TREC_ALARMINFO *)masks ;
	USHORT m_port = get_port(ip);
	ip_port ipport = ip_port(ip, m_port);
    
	CString alias = get_alias(ipport) ;
	if (ptr->probe_alarm || ptr->motion_alarm || ptr->vlost_alarm)
	{
		dlg_alarm.add_alarm(ip, m_port, alias, (byte *)masks, true) ;
		toolbar_btm.start_warning() ;
	}
	else dlg_alarm.add_alarm(ip, m_port, alias, (byte *)masks, false);
	return 0 ;
}

LRESULT CDvrManagerDlg::onnetalarm(WPARAM w, LPARAM l)
{
	toolbar_btm.start_warning() ;
	return 0;
}

int video_channel_count()
{
	return CDvrManagerDlg::vw_count;
}

video_channel* get_video_channel(int idx)
{
	CDvrManagerDlg* p = (CDvrManagerDlg*)AfxGetMainWnd();

	if( idx >=0 && idx<CDvrManagerDlg::vw_count)
		return &p->vw[idx];

	return NULL;
}

⌨️ 快捷键说明

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