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

📄 configpage4.cpp

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

#include "stdafx.h"
#include "dvsuser.h"
#include "ConfigPage4.h"
#include "DvsUserDlg.h"

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

extern CDvsUserDlg* g_User;
/////////////////////////////////////////////////////////////////////////////
// CConfigPage4 property page
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
IMPLEMENT_DYNCREATE(CConfigPage4, CPropertyPage)
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
CConfigPage4::CConfigPage4() : CPropertyPage(CConfigPage4::IDD)
{
	//{{AFX_DATA_INIT(CConfigPage4)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_hAlertOn	= AfxGetApp()->LoadIcon(IDI_ICON_ALERTON);
	m_hAlertOff = AfxGetApp()->LoadIcon(IDI_ICON_ALERTOFF);
	m_hVideo	= AfxGetApp()->LoadIcon(IDI_ICON_MON);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
CConfigPage4::~CConfigPage4()
{
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CConfigPage4)
	DDX_Control(pDX, IDC_VIDEO_STATIC, m_staticVideo);
	DDX_Control(pDX, IDC_VIDEO_SLIDER, m_sliderVideo);
	DDX_Control(pDX, IDC_VIEW_COMBO, m_comboVideo);
	DDX_Control(pDX, IDC_ENDCOMBO, m_comboEnd);
	DDX_Control(pDX, IDC_TIMECOMBO, m_comboTime);
	DDX_Control(pDX, IDC_STARTCOMBO, m_comboStart);
	DDX_Control(pDX, IDC_ICON_STATIC, m_staticBmp);
	//}}AFX_DATA_MAP
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CConfigPage4, CPropertyPage)
	//{{AFX_MSG_MAP(CConfigPage4)
	ON_BN_CLICKED(IDC_ALERT_ON, OnAlertOn)
	ON_BN_CLICKED(IDC_ALERT_OFF, OnAlertOff)
	ON_BN_CLICKED(IDC_BTN_SETALERT, OnBtnSetalert)
	ON_BN_CLICKED(IDC_BTN_RECYCLE, OnBtnRecycle)
	ON_WM_PAINT()
	ON_CBN_SELCHANGE(IDC_VIEW_COMBO, OnSelchangeViewCombo)
	ON_WM_HSCROLL()
	ON_BN_CLICKED(IDC_BTN_VIDEO, OnBtnVideo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
BOOL CALLBACK CConfigPage4::EnumControlProc(HWND h, LPARAM l)
{
	if(l == TRUE)
	{
		::EnableWindow(h, TRUE);
	}
	else{//l != TRUE
		::EnableWindow(h, FALSE);
	}
	return TRUE;
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CConfigPage4::EnableControl(BOOL bEnable)
{
	::EnumChildWindows(this->m_hWnd, (WNDENUMPROC)EnumControlProc, bEnable);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////
// CConfigPage4 message handlers
BOOL CConfigPage4::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();

	InitControl();
	SetControl();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CConfigPage4::InitControl()
{
	if(g_User->CLIENT.dwUserPriority == 4)
	{
		EnableControl(TRUE);
	}
	else{//g_User->CLIENT.dwUserPriority < 4
		EnableControl(FALSE);
	}

}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CConfigPage4::SetControl()
{
	m_comboStart.SetCurSel(g_User->m_dwStartBrance);
	m_comboEnd.SetCurSel(g_User->m_dwStopBrance-1);
	m_comboTime.SetCurSel((g_User->m_dwRecycleTime/5)-1);

	if(g_User->m_bSetAlert == TRUE)
	{
		((CButton*)GetDlgItem(IDC_ALERT_OFF))->SetCheck(0);
		((CButton*)GetDlgItem(IDC_ALERT_ON))->SetCheck(1);
	}
	else{//g_User->m_bSetAlert == FALSE
		((CButton*)GetDlgItem(IDC_ALERT_OFF))->SetCheck(1);
		((CButton*)GetDlgItem(IDC_ALERT_ON))->SetCheck(0);
	}

	COMBOBOXEXITEM	item;
	char			szTemp[100];
	INT				nAdd = 0;

	videoImage.Create(16, 16, ILC_COLOR8, 1, 1);
	videoImage.Add(m_hVideo);

	m_comboVideo.SetImageList(&videoImage);
		
	for(int i=0; i<4; i++)
	{
		if(g_User->LINK[i].bLinkState == TRUE)
		{
			sprintf(szTemp, "%s", g_User->CARD[g_User->LINK[i].dwCard].Brance[g_User->LINK[i].dwBrance].szBranceName);
			item.mask			= CBEIF_IMAGE|CBEIF_SELECTEDIMAGE|CBEIF_TEXT|CBEIF_LPARAM;
			item.iItem			= nAdd;
			item.iImage			= 0;
			item.iSelectedImage	= 0;
			item.lParam			= NULL;
			item.pszText		= szTemp;
			m_comboVideo.InsertItem(&item);
			m_comboVideo.SetItemData(nAdd, i);
			nAdd ++;
		}
	}

	m_sliderVideo.SetRange(0, 5);
	m_staticVideo.SetWindowText(_TEXT("1Mb/s"));
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnAlertOn() 
{
CDC* pDC = NULL;
RECT rc;
	pDC = m_staticBmp.GetDC();
	if(pDC)
	{
		pDC->DrawIcon(0, 0, m_hAlertOn);
		m_staticBmp.ReleaseDC(pDC);
		m_staticBmp.GetClientRect(&rc);
		m_staticBmp.ValidateRect(&rc);
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnAlertOff() 
{
CDC* pDC = NULL;
RECT rc;
	pDC = m_staticBmp.GetDC();
	if(pDC)
	{
		pDC->DrawIcon(0, 0, m_hAlertOff);
		m_staticBmp.ReleaseDC(pDC);
		m_staticBmp.GetClientRect(&rc);
		m_staticBmp.ValidateRect(&rc);
	}	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnBtnSetalert() 
{
INT nState;
	nState = ((CButton*)GetDlgItem(IDC_ALERT_ON))->GetCheck();
	g_User->m_bSetAlert = nState;
	/*发送是否布防*/
	g_User->OnSendPlaceDefeat(g_User->m_bSetAlert);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnBtnRecycle() 
{
DWORD	dwStart;
DWORD	dwStop;
DWORD	dwTime;

	dwStart = m_comboStart.GetCurSel();
	dwStop	= (m_comboEnd.GetCurSel()+1);
	dwTime	= (m_comboTime.GetCurSel()+1)*5;

	if(dwStart >= dwStop)
	{
		MessageBox(_TEXT("设置错误,<开始的支路>大于或是等于<结束的支路>!"), _TEXT("设置"), 0|MB_ICONINFORMATION);
		return;
	}
	g_User->m_dwStartBrance = dwStart;
	g_User->m_dwStopBrance	= dwStop;
	g_User->m_dwRecycleTime	= dwTime;
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	if(g_User->m_bSetAlert == TRUE)
	{
		OnAlertOn();
	}
	else{//g_User->m_bSetAlert == FALSE
		OnAlertOff();
	}

	// Do not call CPropertyPage::OnPaint() for painting messages
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
VOID CConfigPage4::SetStaticText(INT idx)
{
	switch (idx) {
	case 0:
		m_staticVideo.SetWindowText("1Mb/s");
		break;
	case 1:
		m_staticVideo.SetWindowText("500Kb/s");
		break;
	case 2:
		m_staticVideo.SetWindowText("250Kb/s");
		break;
	case 3:
		m_staticVideo.SetWindowText("125Kb/s");
		break;
	case 4:
		m_staticVideo.SetWindowText("62Kb/s");
		break;
	case 5:
		m_staticVideo.SetWindowText("30Kb/s");
		break;
	}
	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnSelchangeViewCombo() 
{
int nSel;
int	nData;
	
	nSel	= m_comboVideo.GetCurSel();
	if(nSel != CB_ERR)
	{
		nData = m_comboVideo.GetItemData(nSel);
		SetStaticText(g_User->LINK[nData].dwVideoRate);
		m_sliderVideo.SetPos(g_User->LINK[nData].dwVideoRate);
	}
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
LONG lPos = m_sliderVideo.GetPos();
	SetStaticText(lPos);
	CPropertyPage::OnHScroll(nSBCode, nPos, pScrollBar);
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------
void CConfigPage4::OnBtnVideo() 
{
int nSel;
int	nData;
LONG lPos;
CString strCardIP;
		
	nSel	= m_comboVideo.GetCurSel();
	if(nSel != CB_ERR)
	{
		nData	= m_comboVideo.GetItemData(nSel);
		lPos	= m_sliderVideo.GetPos();
		g_User->LINK[nData].dwVideoRate = lPos;

		/*设置码流*/
		INITINFO	myInit;
		ZeroMemory(&myInit, sizeof(INITINFO));
		myInit.dwBmpSize	= g_User->LINK[nData].dwVideoRate;
		strCardIP			= g_User->CARD[g_User->LINK[nData].dwCard].szCardIP;
		myInit.dwColor		= ::SetGUID(strCardIP);
		g_User->OnSendVideoRate(&myInit);
	}	
}
//--------------------------------------------------------------------
//
//
//
//--------------------------------------------------------------------

⌨️ 快捷键说明

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