📄 dvsusershortcut.cpp
字号:
#include "stdafx.h"
#include "DvsUser.h"
#include "DvsUserDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define WM_SCSWITCH WM_USER+3000
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnRclickVideoTree(NMHDR* pNMHDR, LRESULT* pResult)
{
CString strValue;
CString strParent;
HTREEITEM hCurSel;
HTREEITEM hParent;
DWORD dwGUID;
DWORD dwBrance;
hCurSel = m_video_tree.GetSelectedItem();
if(hCurSel == NULL) return;
strValue = m_video_tree.GetItemText(hCurSel);
hParent = m_video_tree.GetParentItem(hCurSel);
if(hParent == NULL)
{
return;
}
strParent = m_video_tree.GetItemText(hParent);
dwGUID = ::SetGUID(strParent);
dwBrance = atoi(strValue.Right(1));
DealShortcutLink(dwGUID, (dwBrance-1));
// *pResult = 0;
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::DealShortcutLink(DWORD dwCardGUID, DWORD dwBrance)
{
CString strCardIP;
DWORD dwGUID;
for(int i=0; i<32; i++)
{
strCardIP = CARD[i].szCardIP;
dwGUID = ::SetGUID(strCardIP);
if(dwGUID == dwCardGUID)//确定选中的为这块卡
{
DealShortcutLink(DWORD(i), dwBrance, dwCardGUID);
break;
}
}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::DealShortcutLink(DWORD dwCardIndex, DWORD dwBrance, DWORD dwCardGUID)
{
m_sc_dwCardIndex = dwCardIndex;
m_sc_dwBrance = dwBrance;
if(!SCMenu.m_hMenu)
SCMenu.LoadMenu(IDR_SHORTCUTMENU);
POINT pos;
::GetCursorPos(&pos);
SCMenu.ModifyODMenu(NULL, IDC_SHORTCUT_REFRESH, IDB_BMP_REFRESH);
SCMenu.ModifyODMenu(NULL, IDC_SHORTCUT_VIEW1, IDB_BMP_MON);
SCMenu.ModifyODMenu(NULL, IDC_SHORTCUT_VIEW2, IDB_BMP_MON);
SCMenu.ModifyODMenu(NULL, IDC_SHORTCUT_VIEW3, IDB_BMP_MON);
SCMenu.ModifyODMenu(NULL, IDC_SHORTCUT_VIEW4, IDB_BMP_MON);
BCMenu* pPopup = (BCMenu*)SCMenu.GetSubMenu(0);
::SetForegroundWindow(this->m_hWnd);
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, pos.x, pos.y, this);
SCMenu.DestroyMenu();
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnShortcutView1()
{
DealShortcutLink(m_sc_dwCardIndex, m_sc_dwBrance, 0, 0);
}
void CDvsUserDlg::OnShortcutView2()
{
DealShortcutLink(m_sc_dwCardIndex, m_sc_dwBrance, 1, 0);
}
void CDvsUserDlg::OnShortcutView3()
{
DealShortcutLink(m_sc_dwCardIndex, m_sc_dwBrance, 2, 0);
}
void CDvsUserDlg::OnShortcutView4()
{
DealShortcutLink(m_sc_dwCardIndex, m_sc_dwBrance, 3, 0);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::DealShortcutLink(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView, DWORD dwCardGUID)
{
if (CARD[dwCardIndex].dwCardState == CARD_READY)
{
SC_OnStartReady(dwCardIndex, dwBrance, dwView);
return;
}
else if (CARD[dwCardIndex].dwCardState == CARD_ERROR)
{
SC_OnStartError(dwCardIndex, dwBrance, dwView);
return;
}
else if (CARD[dwCardIndex].dwCardState == CARD_START)
{
SC_OnStartStart(dwCardIndex, dwBrance, dwView);
return;
}
else if (CARD[dwCardIndex].dwCardState == CARD_ALERT)
{
SC_OnStartAlert(dwCardIndex, dwBrance, dwView);
return;
}
else if (CARD[dwCardIndex].dwCardState == CARD_INIT)
{
SC_OnStartInit(dwCardIndex, dwBrance, dwView);
return;
}
else if (CARD[dwCardIndex].dwCardState == CARD_RECYCLE)
{
SC_OnStartRecycle(dwCardIndex, dwBrance, dwView);
return;
}
else return;
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartReady(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
SetViewWindow(dwView, dwCardIndex, dwBrance);
AddLinkInfo(dwView, dwCardIndex, dwBrance);
OnSendVideoStart(dwCardIndex, dwBrance);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartError(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
::MessageBox(this->m_hWnd, _TEXT("编码器发生故障,请检查编码器掉电以及线路故障!\n(RETURN errno = CARD_ERROR)"), _TEXT("错误"),
0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartStart(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
if(LINK[dwView].bLinkState == TRUE)
{
LINK[dwView].bLinkState = FALSE;
OnSendVideoStop(LINK[dwView].dwCard, LINK[dwView].dwBrance);
SC_OnRefreshTitle(dwView);
DWORD dwParam = ((DWORD)((WORD)(dwBrance)) | (((DWORD)(WORD)(dwCardIndex))<<16));
PostMessage(WM_SCSWITCH, dwParam, LPARAM(dwView));
return;
}
for(int i=0; i<4; i++)
{
if(LINK[i].bLinkState == TRUE)
{
if(LINK[i].dwCard == dwCardIndex)
{
LINK[i].bLinkState = FALSE;
OnSendVideoStop(dwCardIndex, CARD[dwCardIndex].dwActiveBrance);
SC_OnRefreshTitle(i);
// ::Sleep(500);
// DealShortcutLink(dwCardIndex, dwBrance, i, 0);
DWORD dwParam = ((DWORD)((WORD)(dwBrance)) | (((DWORD)(WORD)(dwCardIndex))<<16));
PostMessage(WM_SCSWITCH, dwParam, LPARAM(dwView));
return;
}
}
}
if(CARD[dwCardIndex].dwActiveBrance == dwBrance)
{
SetViewWindow(dwView, dwCardIndex, dwBrance);
AddLinkInfo(dwView, dwCardIndex, dwBrance);
OnSendVideoStart(dwCardIndex, dwBrance);
}
else{
if(IDOK ==::MessageBox(this->m_hWnd, _TEXT("您所要监控的摄象机需要和别人协调?"), _TEXT("提示"), MB_OKCANCEL|MB_ICONQUESTION))
{
SetViewWindow(dwView, dwCardIndex, CARD[dwCardIndex].dwActiveBrance);
AddLinkInfo(dwView, dwCardIndex, CARD[dwCardIndex].dwActiveBrance);
OnSendVideoStart(dwCardIndex, dwBrance);
}
}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartAlert(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
if(LINK[dwView].bLinkState == TRUE)
{
LINK[dwView].bLinkState = FALSE;
OnSendVideoStop(LINK[dwView].dwCard, LINK[dwView].dwBrance);
SC_OnRefreshTitle(dwView);
DWORD dwParam = ((DWORD)((WORD)(dwBrance)) | (((DWORD)(WORD)(dwCardIndex))<<16));
PostMessage(WM_SCSWITCH, dwParam, LPARAM(dwView));
return;
}
for(int i=0; i<4; i++)
{
if(LINK[i].bLinkState == TRUE)
{
if(LINK[i].dwCard == dwCardIndex)
{
LINK[i].bLinkState = FALSE;
OnSendVideoStop(dwCardIndex, CARD[dwCardIndex].dwActiveBrance);
SC_OnRefreshTitle(i);
// ::Sleep(500);
// DealShortcutLink(dwCardIndex, dwBrance, i, 0);
DWORD dwParam = ((DWORD)((WORD)(dwBrance)) | (((DWORD)(WORD)(dwCardIndex))<<16));
PostMessage(WM_SCSWITCH, dwParam, LPARAM(dwView));
return;
}
}
}
if(CARD[dwCardIndex].dwActiveBrance == dwBrance) //使用中,监控同一路
{
SetViewWindow(dwView, dwCardIndex, dwBrance);
AddLinkInfo(dwView, dwCardIndex, dwBrance);
OnSendVideoStart(dwCardIndex, dwBrance);
}
else{// g_User->CARD[nCurrentCard].dwActiveBrance != (UINT)nSelect//使用中,监控不是同一路
MessageBox(_TEXT("正在发生报警,不允许切换视频!"), _TEXT("系统提示"), MB_OKCANCEL|MB_ICONQUESTION);
}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartInit(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
::MessageBox(this->m_hWnd, _TEXT("服务器未与编码器建立连接,请检查服务器的连接状态!\n(RETURN errno = CARD_INIT)"), _TEXT("提示"),
0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnStartRecycle(DWORD dwCardIndex, DWORD dwBrance, DWORD dwView)
{
::MessageBox(this->m_hWnd, _TEXT("循环显示时不允许被打断,请稍后再试!(*_^)"), _TEXT("提示"),
0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnShortcutRefresh()
{
AddVideoList();
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnSCSwitchVideo(WPARAM wParam, LPARAM lParam)
{
WORD wCard;
WORD wBrance;
DWORD dwSView;
wCard = HIWORD(wParam);
wBrance = LOWORD(wParam);
dwSView = DWORD(lParam);
::Sleep(1000);
DealShortcutLink((DWORD)wCard, (DWORD)wBrance, dwSView, 0);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SC_OnRefreshTitle(int iTitle)
{
switch (iTitle) {
case 0:
m_view1_bar.SetTitle(_T("万力电子远程监控系统"));
break;
case 1:
m_view2_bar.SetTitle(_T("万力电子远程监控系统"));
break;
case 2:
m_view3_bar.SetTitle(_T("万力电子远程监控系统"));
break;
case 3:
m_view4_bar.SetTitle(_T("万力电子远程监控系统"));
break;
}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -