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

📄 dvsusertmp.cpp

📁 MPEG4网络视频服务器客户端图象监控软件
💻 CPP
字号:
#include "stdafx.h"
#include "DvsUser.h"
#include "DvsUserDlg.h"

#include "WorkDevice.h"
#include "ShowModal.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define	WM_MYHOTKEY		WM_USER+1000
#define	WM_QUERYSWITCH	WM_USER+2002
//--------------------------------------------------------------
//
//
//public:
//--------------------------------------------------------------
VOID CDvsUserDlg::ShowOneWindow(HWND hWnd)
{
	for(int i=IDC_VIEW1; i<=IDC_VIEW4_FLAG; i++) 
	{
		if(hWnd != GetDlgItem(i)->m_hWnd) 
		{
			GetDlgItem(i)->ShowWindow(SW_HIDE);
		}
	}
	Invalidate();
}
//--------------------------------------------------------------
//
//
//public:
//--------------------------------------------------------------
VOID CDvsUserDlg::ShowAllWindow(HWND hWnd)
{
	for(int i=IDC_VIEW1; i<=IDC_VIEW4_FLAG; i++) 
	{
		GetDlgItem(i)->ShowWindow(SW_SHOW);
	}
	Invalidate();
}
//--------------------------------------------------------------
//
//
//public:
//--------------------------------------------------------------
VOID CDvsUserDlg::OnIconMsg(WPARAM wParam, LPARAM lParam)
{
	UINT uMouseMsg = (UINT)lParam;
	
	switch(uMouseMsg)
	{
	case WM_RBUTTONDOWN:
		{
			if(!TrayMenu.m_hMenu)
				TrayMenu.LoadMenu(IDR_TRAYMENU);
			
			POINT pos;
			::GetCursorPos(&pos);
			
			TrayMenu.ModifyODMenu(NULL, IDC_TRAY_MAIN, IDB_BMP_MAIN);
			BCMenu*	pPopup = (BCMenu*)TrayMenu.GetSubMenu(0);
			::SetForegroundWindow(this->m_hWnd);
			pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, pos.x, pos.y, this);
			
			TrayMenu.DestroyMenu();
		}
		break;
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SetViewWindow(int nMonitor, DWORD dwCardIndex, DWORD dwActiveBrance)
{
  CString strTmp;
	strTmp = CARD[dwCardIndex].Brance[dwActiveBrance].szBranceName;

	switch(nMonitor)
	{
	case 0:
		pCurrentView = &m_view1;
		m_nCurrentView = 0;
		m_view1_bar.SetTitle(strTmp);
		break;

	case 1:
		pCurrentView = &m_view2;
		m_nCurrentView = 1;
		m_view2_bar.SetTitle(strTmp);
		break;

	case 2:
		pCurrentView = &m_view3;
		m_nCurrentView = 2;
		m_view3_bar.SetTitle(strTmp);
		break;

	case 3:
		pCurrentView = &m_view4;
		m_nCurrentView = 3;
		m_view4_bar.SetTitle(strTmp);
		break;
		
	}
}
//--------------------------------------------------------------
//
//
//public:
//--------------------------------------------------------------
VOID CDvsUserDlg::AddLinkInfo(int nMonitor, DWORD dwCardIndex, DWORD dwActiveBrance)
{
	LINK[nMonitor].bLinkState	= TRUE;
	LINK[nMonitor].dwCard		= dwCardIndex;
	LINK[nMonitor].dwBrance		= dwActiveBrance;
}
//--------------------------------------------------------------
//
//
//public:
//--------------------------------------------------------------
VOID CDvsUserDlg::DelLinkInfo(int nMonitor)
{
	LINK[nMonitor].bLinkState	= FALSE;
	LINK[nMonitor].dwCard		= 0xFF;
	LINK[nMonitor].dwBrance		= 0xFF;	
}
//--------------------------------------------------------------
//
//
//private:
//--------------------------------------------------------------
int CDvsUserDlg::AddVideoList()
{
/*	m_video_list_length = 0;
	m_video_list.DeleteAllItems();
	
	for(int j=0; j<32; j++)
	{
		if(CARD[j].dwCardState != 0)
		{
			for(int i=0; i<8; i++)
			{
				m_video_list.InsertItem(m_video_list_length, CARD[j].Brance[i].szBranceName);
				if(CARD[j].Brance[i].bDevice)
					m_video_list.SetItemText(m_video_list_length, 1, _TEXT("√"));
				else
					m_video_list.SetItemText(m_video_list_length, 1, _TEXT(""));

				if(CARD[j].Brance[i].bLamp)
					m_video_list.SetItemText(m_video_list_length, 2, _TEXT("√"));
				else
					m_video_list.SetItemText(m_video_list_length, 2, _TEXT(""));

				m_video_list_length++;
			}
		}
	}	
*/
HTREEITEM	htm;
CString		strTemp;
CString		strCard;

	m_video_tree.DeleteAllItems();
	for(int j=0; j<32; j++)
	{
		if(CARD[j].dwCardState != 0)
		{
			strTemp	= CARD[j].szCardName;
			strCard	= strTemp + "--->" + CARD[j].szCardIP;
			htm		= m_video_tree.InsertItem(strCard, 0, 0, TVI_ROOT);
			for(int i=0; i<8; i++)
			{
				strTemp.Format("%d", i+1);
				strCard	= CARD[j].Brance[i].szBranceName;
				strCard	= strCard + "->" + strTemp;
				m_video_tree.InsertItem(strCard, 1, 1, htm);
			}
		}
	}
	
	return 1;
}
//--------------------------------------------------------------
//
//
//private:
//--------------------------------------------------------------
int CDvsUserDlg::DelVideoList(int nIndex)
{
	return 1;
}
//--------------------------------------------------------------
//
//
//
//--------------------------------------------------------------
void CDvsUserDlg::SetFileSaveFlag(int iWindow, BOOL bSave)
{
int i=0;

	if(iWindow == -1)		//所有存储
	{
		for(i=0; i<4; i++)
		{
			if(pWork[i]->m_bStart == TRUE)
			{
				if(pWork[i]->m_bSaveFile != bSave)		//如果标志和以前相同则不设
				{
					pWork[i]->SetSaveFlag(bSave);
					TRACE("WORK = %d, WINDOW = %d, SAVE FLAG = %d\n", i, iWindow, bSave);
					break;
				}
			}
		}
	}
	
	else{
		for(i=0; i<4; i++)
		{
			if(pWork[i]->m_nViewWindow == iWindow)
			{
				if(pWork[i]->m_bStart == TRUE)
				{
					if(pWork[i]->m_bSaveFile != bSave)		//如果标志和以前相同则不设
					{
						pWork[i]->SetSaveFlag(bSave);
						TRACE("WORK = %d, WINDOW = %d, SAVE FLAG = %d\n", i, iWindow, bSave);
						break;
					}
				}
			}
		}
	}
}
//--------------------------------------------------------------
//
//
//
//--------------------------------------------------------------
BOOL CDvsUserDlg::GetFileSaveFlag(int iWindow)
{
	for(int i=0; i<4; i++)
	{
		if(pWork[i]->m_nViewWindow == iWindow)
		{
			if(pWork[i]->m_bStart == TRUE)
			{
				if(pWork[i]->m_bSaveFile == TRUE)
					return TRUE;
				else
					return FALSE;
			}
		}
	}
	return FALSE;
}
//--------------------------------------------------------------
//
//
//
//--------------------------------------------------------------
BOOL CDvsUserDlg::PreTranslateMessage(MSG* pMsg) 
{
	if(ToolTip.m_hWnd)
	{
		ToolTip.RelayEvent(pMsg);
	}
	
	if(pMsg->message == WM_KEYDOWN)
	{
		if(pMsg->wParam == 0x0D)
		{
			return FALSE;
		}

		if(pMsg->wParam == VK_F5)
		{
			PostMessage(WM_MYHOTKEY, 1);
			return FALSE;
		}

		if(pMsg->wParam == VK_F6)
		{
			PostMessage(WM_MYHOTKEY, 2);
			return FALSE;
		}

		if(pMsg->wParam == VK_F7)
		{
			PostMessage(WM_MYHOTKEY, 3);
			return FALSE;
		}

		if(pMsg->wParam == VK_F8)
		{
			PostMessage(WM_MYHOTKEY, 4);
			return FALSE;
		}

		if(pMsg->wParam == VK_F9)
		{
			PostMessage(WM_MYHOTKEY, 5);
			return FALSE;
		}

		if(pMsg->wParam == 0x1B)
		{
			PostMessage(WM_MYHOTKEY, 6);
			return FALSE;
		}
		
		if(pMsg->wParam == VK_F4)
		{
			PostMessage(WM_MYHOTKEY, 7);
			return FALSE;
		}
	}
	
	return CDialog::PreTranslateMessage(pMsg);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnMyHotKey(WPARAM wParam, LPARAM lParam)
{
	switch (wParam) {
	case 1:
		OnBtnStart();
		break;

	case 2:
		OnBtnVideo();
		break;

	case 3:
		OnBtnPlayback();
		break;

	case 4:
		OnBtnConfig();
		break;

	case 5:
		OnBtnDevice();
		break;

	case 6:
		OnBtnExit();
		break;

	case 7:
		{
		SetUserWindowState(FALSE);		//最小化窗口
		break;
		}
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnTrayMain() 
{
	SetUserWindowState(TRUE);			//恢复窗口
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::SetUserWindowState(BOOL bState)
{
	if(bState == TRUE)
	{
		Shell_NotifyIcon(NIM_DELETE, &nfd);
		this->ShowWindow(SW_SHOW);
	}

	else{
		Shell_NotifyIcon(NIM_ADD, &nfd);
		this->ShowWindow(SW_HIDE);
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
int CDvsUserDlg::ShowModal(LPCTSTR lpText, LPCTSTR lpTitle, UINT uiTime)
{
	CShowModal dlg;
	dlg.m_strTitle	= lpTitle;
	dlg.m_strText	= lpText;
	dlg.m_nTime		= uiTime;
	return dlg.DoModal();	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnShowModal(WPARAM wParam, LPARAM lParam)
{
CString strText;

	strText.Format(_TEXT("用户<%s>请求把视频<%s>切换到<%s>,您是否同意?"), 
					SWITCH.szUserName, 
					SWITCH.szSourBrance, 
					SWITCH.szDestBrance);
	if(ShowModal(strText, _TEXT("切换请求")) == IDOK)
	{
		OnSendSwitchInfo();
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------

⌨️ 快捷键说明

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