📄 dvrmanagerdlg.cpp
字号:
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 + -