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

📄 dvsuserdlg.cpp

📁 MPEG4网络视频服务器客户端图象监控软件
💻 CPP
字号:
// DvsUserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DvsUser.h"
#include "DvsUserDlg.h"

#include "ConfigPage1.h"
#include "ConfigPage2.h"
#include "ConfigPage3.h"
#include "ConfigPage4.h"

#include "DlgDeviceCtrl.h"
#include "DlgConnect.h"
#include "DlgSaveFile.h"

#include "WorkDevice.h"

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

#define	WM_WORKDESTROY	WM_USER+2000
#define	WM_PROGRAMEXIT	WM_USER+2001
#define	WM_QUERYSWITCH	WM_USER+2002

#define	WM_MYHOTKEY		WM_USER+1000
#define	WM_ICONMESSAGE	WM_USER+1001

#define	WM_SCSWITCH		WM_USER+3000

CDvsUserDlg*	g_User	= NULL;
/////////////////////////////////////////////////////////////////////////////
// CDvsUserDlg dialog
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
CDvsUserDlg::CDvsUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDvsUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDvsUserDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon		= AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_hCamera	= AfxGetApp()->LoadIcon(IDI_ICON_BRANCE);
	m_hCard		= AfxGetApp()->LoadIcon(IDI_ICON_CARD);
	m_hTray		= AfxGetApp()->LoadIcon(IDI_ICON_TRAY);

	m_hBmp		= NULL;
	
	//线程初始化
	cmdListenThread		= NULL;
	dataListenThread	= NULL;
	recvCmdThread		= NULL;

	pCurrentView		= NULL;

	ZeroMemory(CARD, sizeof(CARDINFO)*32);
	ZeroMemory(USER, sizeof(USERINFO)*16);
	ZeroMemory(LINK, sizeof(LINKINFO)*4);
	
	for(int i=0; i<4; i++)
	{
		pWork[i]		= NULL;
	}
	
	m_bSetAlert			= TRUE;	//是否布防
	m_dwStartBrance		= 0;	
	m_dwStopBrance		= 7;
	m_dwRecycleTime		= 5;	//循环显示使用

	m_video_list_length	= 0;
	m_bExit				= FALSE;
	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
CDvsUserDlg::~CDvsUserDlg()
{
//	Finitialize();
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDvsUserDlg)
	DDX_Control(pDX, IDC_VIDEO_TREE, m_video_tree);
	DDX_Control(pDX, IDC_VIDEO_LIST, m_video_list);
	DDX_Control(pDX, IDC_VIEW4_FLAG, m_view4_bar);
	DDX_Control(pDX, IDC_VIEW3_FLAG, m_view3_bar);
	DDX_Control(pDX, IDC_VIEW2_FLAG, m_view2_bar);
	DDX_Control(pDX, IDC_VIEW1_FLAG, m_view1_bar);
	
	DDX_Control(pDX, IDC_VIEW4, m_view4);
	DDX_Control(pDX, IDC_VIEW3, m_view3);
	DDX_Control(pDX, IDC_VIEW2, m_view2);
	DDX_Control(pDX, IDC_VIEW1, m_view1);
	//}}AFX_DATA_MAP
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CDvsUserDlg, CDialog)
	//{{AFX_MSG_MAP(CDvsUserDlg)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BTN_START, OnBtnStart)
	ON_BN_CLICKED(IDC_BTN_VIDEO, OnBtnVideo)
	ON_BN_CLICKED(IDC_BTN_PLAYBACK, OnBtnPlayback)
	ON_BN_CLICKED(IDC_BTN_CONFIG, OnBtnConfig)
	ON_BN_CLICKED(IDC_BTN_DEVICE, OnBtnDevice)
	ON_BN_CLICKED(IDC_BTN_EXIT, OnBtnExit)

	ON_WM_SYSCOMMAND()

	ON_COMMAND(IDC_TRAY_MAIN, OnTrayMain)
	ON_NOTIFY(NM_RCLICK, IDC_VIDEO_TREE, OnRclickVideoTree)

	ON_COMMAND(IDC_SHORTCUT_REFRESH, OnShortcutRefresh)
	ON_COMMAND(IDC_SHORTCUT_VIEW1, OnShortcutView1)
	ON_COMMAND(IDC_SHORTCUT_VIEW2, OnShortcutView2)
	ON_COMMAND(IDC_SHORTCUT_VIEW3, OnShortcutView3)
	ON_COMMAND(IDC_SHORTCUT_VIEW4, OnShortcutView4)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP

	ON_MESSAGE(WM_WORKDESTROY, OnDestroyWorkDevice)
	ON_MESSAGE(WM_PROGRAMEXIT, OnProgramExit)
	ON_MESSAGE(WM_QUERYSWITCH, OnShowModal)
	ON_MESSAGE(WM_MYHOTKEY, OnMyHotKey)
	ON_MESSAGE(WM_ICONMESSAGE, OnIconMsg)
	ON_MESSAGE(WM_SCSWITCH, OnSCSwitchVideo)

	ON_COMMAND(IDC_INTERFACE_SAVE1, OnBtnSave1)
	ON_COMMAND(IDC_INTERFACE_SAVE2, OnBtnSave2)
	ON_COMMAND(IDC_INTERFACE_SAVE3, OnBtnSave3)
	ON_COMMAND(IDC_INTERFACE_SAVE4, OnBtnSave4)

	ON_COMMAND(IDC_INTERFACE_REVIEW1, OnBtnReview1)
	ON_COMMAND(IDC_INTERFACE_REVIEW2, OnBtnReview2)
	ON_COMMAND(IDC_INTERFACE_REVIEW3, OnBtnReview3)
	ON_COMMAND(IDC_INTERFACE_REVIEW4, OnBtnReview4)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDvsUserDlg message handlers
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------

INT CDvsUserDlg::OnProgramExit(WPARAM wParam, LPARAM lParam)
{
  int nRet;
	nRet = ::MessageBox(this->m_hWnd, 
						_TEXT("无法连接服务器,请检查线路故障,再重新登录服务器!"), 
						_TEXT("提示"), 
						MB_OKCANCEL|MB_ICONQUESTION);

	m_bExit = 1;
	CDialog::OnCancel();
	return 1;
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnSysCommand(UINT nID, LPARAM lParam) 
{
	MessageBeep(1);
	if(SC_CLOSE == nID)
	{
		OnBtnExit();
		return;
	}
	
	CDialog::OnSysCommand(nID, lParam);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
BOOL CDvsUserDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	g_User	= this;

	Initialize();
	SetTimer(101, 100, NULL);
	return TRUE;  // return TRUE  unless you set the focus to a control
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	DrawFrame(&dc);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnStart() 
{
	pDlgConnect = new CDlgConnect();
	pDlgConnect->DoModal();
	delete pDlgConnect;
	pDlgConnect = NULL;	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnVideo() 
{
	CDlgSaveFile dlg;
	dlg.DoModal();
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnPlayback() 
{
	WinExec("qplay.exe", SW_SHOW);	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnConfig() 
{
	CConfigPage1	page1;	
	CConfigPage2	page2;
	CConfigPage3	page3;
	CConfigPage4	page4;

	page1.m_psp.dwFlags &= ~PSP_HASHELP;
	page2.m_psp.dwFlags &= ~PSP_HASHELP;
	page3.m_psp.dwFlags &= ~PSP_HASHELP;
	page4.m_psp.dwFlags &= ~PSP_HASHELP;

	CPropertySheet	sheet(_TEXT("系统设置"));
	sheet.m_psh.dwFlags	&= ~PSH_HASHELP;
	sheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;
	sheet.m_psh.dwFlags |= PSH_USEHICON;
	sheet.m_psh.hIcon	= m_hIcon;
	sheet.AddPage(&page1);
	sheet.AddPage(&page2);
	sheet.AddPage(&page3);
	sheet.AddPage(&page4);

	sheet.DoModal();	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnDevice() 
{
	CDlgDeviceCtrl dlg;
	dlg.DoModal();	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnBtnExit() 
{
  int nRet;
	nRet = ::MessageBox(this->m_hWnd, 
						_TEXT("您确实要退出系统吗?"), 
						_TEXT("提示"), 
						MB_OKCANCEL|MB_ICONQUESTION);

	if(nRet == IDOK)
	{
		m_bExit = 1;
		DestroyAllLink();
		CDialog::OnCancel();
	}		
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnSave1()
{
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnSave2()
{
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnSave3()
{
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnSave4()
{
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnReview1()
{
	if(CLIENT.dwUserPriority < 4)
	{
		MessageBox(_TEXT("您的权限不够,需要SUPER用户权限!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
		return;
	}

	if(LINK[0].bLinkState == TRUE)
	{
		if(CARD[LINK[0].dwCard].dwCardState == CARD_START)
		{
			RECYCLEINFO	recycle;
			sprintf(recycle.szCardIP, "%s", CARD[LINK[0].dwCard].szCardIP);
			recycle.dwStartBrance	= m_dwStartBrance;
			recycle.dwStopBrance	= m_dwStopBrance;
			recycle.dwOldBrance		= CARD[LINK[0].dwCard].dwActiveBrance;
			recycle.dwTimeSpace		= m_dwRecycleTime;
			OnSendRecycleView(&recycle);
			return;
		}
	}
	MessageBox(_TEXT("未连接编码器或者编码器状态不对(已经在循环显示?)!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnReview2()
{
	if(CLIENT.dwUserPriority < 4)
	{
		MessageBox(_TEXT("您的权限不够,需要SUPER用户权限!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
		return;
	}

	if(LINK[1].bLinkState == TRUE)
	{
		if(CARD[LINK[1].dwCard].dwCardState == CARD_START)
		{
			RECYCLEINFO	recycle;
			sprintf(recycle.szCardIP, "%s", CARD[LINK[1].dwCard].szCardIP);
			recycle.dwStartBrance	= m_dwStartBrance;
			recycle.dwStopBrance	= m_dwStopBrance;
			recycle.dwOldBrance		= CARD[LINK[1].dwCard].dwActiveBrance;
			recycle.dwTimeSpace		= m_dwRecycleTime;
			OnSendRecycleView(&recycle);
			return;
		}
	}
	MessageBox(_TEXT("未连接编码器或者编码器状态不对(已经在循环显示?)!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);

}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnReview3()
{
	if(CLIENT.dwUserPriority < 4)
	{
		MessageBox(_TEXT("您的权限不够,需要SUPER用户权限!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
		return;
	}

	if(LINK[2].bLinkState == TRUE)
	{
		if(CARD[LINK[2].dwCard].dwCardState == CARD_START)
		{
			RECYCLEINFO	recycle;
			sprintf(recycle.szCardIP, "%s", CARD[LINK[2].dwCard].szCardIP);
			recycle.dwStartBrance	= m_dwStartBrance;
			recycle.dwStopBrance	= m_dwStopBrance;
			recycle.dwOldBrance		= CARD[LINK[2].dwCard].dwActiveBrance;
			recycle.dwTimeSpace		= m_dwRecycleTime;
			OnSendRecycleView(&recycle);
			return;
		}
	}
	MessageBox(_TEXT("未连接编码器或者编码器状态不对(已经在循环显示?)!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CDvsUserDlg::OnBtnReview4()
{
	if(CLIENT.dwUserPriority < 4)
	{
		MessageBox(_TEXT("您的权限不够,需要SUPER用户权限!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
		return;
	}

	if(LINK[3].bLinkState == TRUE)
	{
		if(CARD[LINK[3].dwCard].dwCardState == CARD_START)
		{
			RECYCLEINFO	recycle;
			sprintf(recycle.szCardIP, "%s", CARD[LINK[3].dwCard].szCardIP);
			recycle.dwStartBrance	= m_dwStartBrance;
			recycle.dwStopBrance	= m_dwStopBrance;
			recycle.dwOldBrance		= CARD[LINK[3].dwCard].dwActiveBrance;
			recycle.dwTimeSpace		= m_dwRecycleTime;
			OnSendRecycleView(&recycle);
			return;
		}
	}
	MessageBox(_TEXT("未连接编码器或者编码器状态不对(已经在循环显示?)!"), _TEXT("系统信息"), 0|MB_ICONINFORMATION);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CDvsUserDlg::OnTimer(UINT nIDEvent) 
{
	for(int i=0; i<4; i++)
	{
		if(pWork[i])
		{
			if(pWork[i]->m_bStart == TRUE)
			{
				LINK[pWork[i]->m_nViewWindow].bLinkState = TRUE;
			}
		}
	}
	CDialog::OnTimer(nIDEvent);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------

⌨️ 快捷键说明

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