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

📄 dlgsetcapparam.cpp

📁 电子监控的网络编程实例
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DlgSetCapParam.cpp : implementation file
//

#include "stdafx.h"
#include "videocapture.h"
#include "DlgSetCapParam.h"
#include "VideoCaptureView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgSetCapParam dialog


CDlgSetCapParam::CDlgSetCapParam(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgSetCapParam::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgSetCapParam)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgSetCapParam::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgSetCapParam)
	DDX_Control(pDX, IDC_SPIN_SMALL_CAR, m_smallcar);
	DDX_Control(pDX, IDC_SPIN_SPEED_MIN, m_minspeed);
	DDX_Control(pDX, IDC_SPIN_SPEED, m_speed);
	DDX_Control(pDX, IDC_SPIN_IMAGE, m_image);
	DDX_Control(pDX, IDC_COMBO_POLICE, m_unit);
	DDX_Control(pDX, IDC_COMBO_ROAD, m_road);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgSetCapParam, CDialog)
	//{{AFX_MSG_MAP(CDlgSetCapParam)
	ON_EN_CHANGE(IDC_EDIT_NUM_IMAGE, OnChangeEditNumImage)
	ON_EN_CHANGE(IDC_EDIT_MAX_AVI, OnChangeEditMaxAvi)
	ON_EN_CHANGE(IDC_EDIT_MAX_SPEED, OnChangeEditMaxSpeed)
	ON_BN_CLICKED(IDC_CHECK_JPG, OnCheckJpg)
	ON_BN_CLICKED(IDC_CHECK_ROAD, OnCheckRoad)
	ON_CBN_CLOSEUP(IDC_COMBO_ROAD, OnCloseupComboRoad)
	ON_CBN_CLOSEUP(IDC_COMBO_POLICE, OnCloseupComboPolice)
	ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_IMAGE, OnDeltaposSpinImage)
	ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SPEED, OnDeltaposSpinSpeed)
	ON_EN_CHANGE(IDC_EDIT_MIN_SPEED, OnChangeEditMinSpeed)
	ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SPEED_MIN, OnDeltaposSpinSpeedMin)
	ON_BN_CLICKED(IDC_CHECK_MIN_SPEED, OnCheckMinSpeed)
	ON_EN_CHANGE(IDC_SMALL_CAR_SPEED, OnChangeSmallCarSpeed)
	ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SMALL_CAR, OnDeltaposSpinSmallCar)
	ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
	ON_EN_CHANGE(IDC_ROAD_BM, OnChangeRoadBm)
	ON_BN_CLICKED(IDC_CHECK_ROAD2, OnCheckRoad2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgSetCapParam message handlers

BOOL CDlgSetCapParam::OnInitDialog() 
{
	CDialog::OnInitDialog();
	try{

		CVideoCaptureView* pView=CVideoCaptureView::GetView();
		if(!pView)
			return FALSE;	
		
		CString str;
		str.Format("%d",pView->m_nNumBmp);
		GetDlgItem(IDC_EDIT_NUM_IMAGE)->SetWindowText(str);	

		
		
		str.Format("%d",pView->m_videoLimited);
		GetDlgItem(IDC_EDIT_MAX_AVI)->SetWindowText(str);
		
		str.Format("%d",pView->m_iSpeed);
		GetDlgItem(IDC_EDIT_MAX_SPEED)->SetWindowText(str);
		
		if(pView->m_JPG)
			((CButton*)GetDlgItem(IDC_CHECK_JPG))->SetCheck(TRUE);
		
	//	m_road.SetWindowText(pView->m_stationName);
		
		if(pView->m_bSaveStation)
		{
			((CButton*)GetDlgItem(IDC_CHECK_ROAD))->SetCheck(BST_CHECKED);
		//	m_road.EnableWindow(TRUE);
		}
		else
		{
			((CButton*)GetDlgItem(IDC_CHECK_ROAD))->SetCheck(BST_UNCHECKED);
		//	m_road.EnableWindow(FALSE);
		}

		if(pView->m_bSaveWeizhang)
		{
			((CButton*)GetDlgItem(IDC_CHECK_ROAD2))->SetCheck(BST_CHECKED);
			//	m_road.EnableWindow(TRUE);
		}
		else
		{
			((CButton*)GetDlgItem(IDC_CHECK_ROAD2))->SetCheck(BST_UNCHECKED);
			//	m_road.EnableWindow(FALSE);
		}
		
		m_unit.SetWindowText(pView->m_szPoliceUint);
		
		CString sDLBM,sDLMC;
		int nPos=pView->m_szDLBM.Find("-",0);
		sDLMC=pView->m_stationName;
		if ( nPos>0 )
		{
			sDLBM=pView->m_szDLBM.Left(nPos);
			sDLMC=pView->m_stationName;
		}
		GetDlgItem(IDC_ROAD_BM)->SetWindowText(sDLBM);
		
		//初始化违章地点选择框
		CADODataset * pRst=new CADODataset();
		pRst->SetConnection(pView->pConn);
		str="select dlbm,dlmc from dlbm order by dlbm asc";
		pRst->Open(str,CADODataset::openQuery);
		while (!pRst->IsEof()) {
			pRst->GetFieldValue("dlmc",str);
			m_road.AddString(str);
			pRst->MoveNext();
		}
		pRst->Close();
		delete pRst;
		
		int iIndex=m_road.FindString(0,pView->m_stationName);
		m_road.SetCurSel(iIndex);
		
		CStdioFile* pTxtFile = new CStdioFile();
		if(pTxtFile->Open(".\\Police.dat",CFile::modeRead | CFile::typeText))
		{
			CString str;
			while(pTxtFile->GetPosition()<pTxtFile->GetLength())
			{
				pTxtFile->ReadString(str);
				m_unit.AddString(str);
			}
			pTxtFile->Close();
			
		}
		delete pTxtFile;

		
		str.Format("%d",pView->m_iSpeedDown);
		GetDlgItem(IDC_EDIT_MIN_SPEED)->SetWindowText(str);
		str.Format("%d",pView->m_iSpeedUp);
		GetDlgItem(IDC_SMALL_CAR_SPEED)->SetWindowText(str);
		((CButton*)GetDlgItem(IDC_CHECK_MIN_SPEED))->SetCheck(pView->m_bCapMinSpeed);
		GetDlgItem(IDC_EDIT_MIN_SPEED)->EnableWindow(pView->m_bCapMinSpeed);
		GetDlgItem(IDC_SPIN_SPEED_MIN)->EnableWindow(pView->m_bCapMinSpeed);
		((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(pView->m_bCapSmallCarSpeed);
		GetDlgItem(IDC_SMALL_CAR_SPEED)->EnableWindow(pView->m_bCapSmallCarSpeed);
		GetDlgItem(IDC_SPIN_SMALL_CAR)->EnableWindow(pView->m_bCapSmallCarSpeed);

		//设置微调按钮控件
		m_image.SetRange(1,6);
		m_speed.SetRange(21,250);
		m_minspeed.SetRange(21,100);
		m_smallcar.SetRange(30,250);
		m_image.SetPos(pView->m_nNumBmp);
		m_speed.SetPos(pView->m_iSpeed);
		m_minspeed.SetPos(pView->m_iSpeedDown);
		m_smallcar.SetPos(pView->m_iSpeedUp);
		m_smallcar.SetBase(1);
	}
	catch (...) {
		return FALSE;
		WriteLog("初始化 抓拍参数设置对话框 失败!");
		ShowMessage("初始化 抓拍参数设置对话框 失败!",MB_OK|MB_ICONERROR);
	}
	

	return TRUE;  
}

//修改保存 连续抓拍图象数量
/***-------------------------------------------------------------------------------
控制连续抓拍 图像的数量
控制在1-6之间
-------------------------------------------------------------------------------***/
void CDlgSetCapParam::OnChangeEditNumImage() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView)
		return;	
	
	CString text;
	GetDlgItem(IDC_EDIT_NUM_IMAGE)->GetWindowText(text);
	int a=atoi(text);
	if(a>6)
	{
		a=6;
		text.Format("%d",a);
		GetDlgItem(IDC_EDIT_NUM_IMAGE)->SetWindowText(text);
	}
	pView->m_nNumBmp=a;
	//保存参数
	CString str;
	str.Format("%d",pView->m_nNumBmp);
	::WritePrivateProfileString("IMAGE","NUM",str,".\\config.ini");	
	m_image.SetPos(pView->m_nNumBmp);
}

//修改保存 单个视频文件大小限制
/***-------------------------------------------------------------------------------
控制视频大小限制
1-100之间
-------------------------------------------------------------------------------***/
void CDlgSetCapParam::OnChangeEditMaxAvi() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView)
		return;	

	CString text;
	GetDlgItem(IDC_EDIT_MAX_AVI)->GetWindowText(text);
	int a=atoi(text);
	if ( a>100)
	{
		a=10;
		text.Format("%d",a);
		GetDlgItem(IDC_EDIT_MAX_AVI)->SetWindowText(text);
	}
	pView->m_videoLimited=a;

	::WritePrivateProfileString("IMAGE","MAXAVI",text,".\\config.ini");	
}

//速度限制  框输入限制(0-250km/h)
void CDlgSetCapParam::OnChangeEditMaxSpeed() 
{
		CVideoCaptureView* pView=CVideoCaptureView::GetView();
		if (!pView)
			return;
		
		CString text;
		GetDlgItem(IDC_EDIT_MAX_SPEED)->GetWindowText(text);
		int a=atoi(text);
		pView->m_iSpeed=a;
		if ( a>250)
		{
			a=120;
			pView->m_iSpeed=a;
			text.Format("%d",a);
			GetDlgItem(IDC_EDIT_MAX_SPEED)->SetWindowText(text);
		}
		pView->pcsDlg->GetDlgItem(IDC_LIMITED_SPEED)->SetWindowText(text);
		::WritePrivateProfileString("SYSTEM","MAXSPEED",text,".\\config.ini");
		
		m_speed.SetPos(pView->m_iSpeed);
}

void CDlgSetCapParam::OnCheckJpg() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if (!pView)
		return;

	if(((CButton*)GetDlgItem(IDC_CHECK_JPG))->GetCheck()==BST_CHECKED)
		pView->m_JPG=TRUE;
	else
		pView->m_JPG=FALSE;
}

/***-------------------------------------------------------------------------------
设置是否加上默认拍摄地址
-------------------------------------------------------------------------------***/
void CDlgSetCapParam::OnCheckRoad() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if (!pView)
		return;
	

⌨️ 快捷键说明

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