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

📄 dlgsetcode.cpp

📁 电子监控的网络编程实例
💻 CPP
字号:
// DlgSetCode.cpp : implementation file
//

#include "stdafx.h"
#include "videocapture.h"
#include "DlgSetCode.h"
#include "VideoCaptureView.h"
#include "ADODB.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgSetCode dialog


CDlgSetCode::CDlgSetCode(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgSetCode::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgSetCode)
	m_code = _T("");
	m_miaoshu = _T("");
	//}}AFX_DATA_INIT
}


void CDlgSetCode::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgSetCode)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Text(pDX, IDC_CODE_DAIMA, m_code);
	DDV_MaxChars(pDX, m_code, 6);
	DDX_Text(pDX, IDC_CODE_MIAOSHU, m_miaoshu);
	DDV_MaxChars(pDX, m_miaoshu, 150);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgSetCode, CDialog)
	//{{AFX_MSG_MAP(CDlgSetCode)
	ON_BN_CLICKED(IDC_ADD_CODE, OnAddCode)
	ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
	ON_BN_CLICKED(IDC_DEL_CODE, OnDelCode)
	ON_BN_CLICKED(IDC_BUTTON_SET_SPEED, OnButtonSetSpeed)
	ON_BN_CLICKED(IDC_SET_SLOW_SPEED, OnSetSlowSpeed)
	ON_BN_CLICKED(IDC_BUTTON_CY, OnButtonCy)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgSetCode message handlers

BOOL CDlgSetCode::OnInitDialog() 
{
	CDialog::OnInitDialog();
	

	m_list.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
	m_list.InsertColumn(0,"违法代码",LVCFMT_LEFT,64);
	m_list.InsertColumn(1,"违法描述",LVCFMT_LEFT,320);
	m_list.InsertColumn(2,"是否常用代码",LVCFMT_LEFT,100);

	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView)
		return FALSE;
	CADODataset* pRst=new CADODataset();
	try
	{	
		pRst->SetConnection(pView->pConn);
		pRst->Open("Select * from WZLX order by yxj asc, WZBH asc");
		CString str;
		INT nYXJ;
		while (!pRst->IsEof()) {
			pRst->GetFieldValue("WZBH",str);
			int item=m_list.InsertItem(0,str);
			pRst->GetFieldValue("WZMS",str);
			m_list.SetItemText(item,1,str);
			pRst->GetFieldValue("yxj",nYXJ);
			if (nYXJ>1) {
				m_list.SetItemText(item,2,"常用代码");
			}
			pRst->MoveNext();
		}
		pRst->Close();
		delete pRst;


		if (m_list.GetItemCount()>0) {
			CString sYXJ=m_list.GetItemText(0,2);
			if (sYXJ.GetLength()<2) {
				GetDlgItem(IDC_BUTTON_CY)->SetWindowText("设置为常用代码[&E]");
			}else{
				GetDlgItem(IDC_BUTTON_CY)->SetWindowText("取消常用代码设置[&E]");
			}
		}

		GetDlgItem(IDC_SPEED_CODE)->SetWindowText("当前超速代码为:"+pView->m_szUpSpeed);
		GetDlgItem(IDC_SLOW_SPEED)->SetWindowText("当前低速代码为:"+pView->m_szSlowSpeed);


	}
	catch (...) {
		WriteLog("维护违法代码--数据读取出错");
		ShowMessage("维护违法代码--数据读取出错",MB_OK | MB_ICONERROR);
	}
	

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//添加违章代码
void CDlgSetCode::OnAddCode() 
{
	try{
		CVideoCaptureView* pView=CVideoCaptureView::GetView();
		if(!pView)
			return;
		CADODataset* pRst = new CADODataset();
		pRst->SetConnection(pView->pConn);


		CString str;

		UpdateData();
		
		str.Format("select * from WZLX where WZBH='%s'",m_code);
		pRst->Open(str,CADODataset::openQuery);
		if(pRst->IsEof())//insert
		{
			str.Format("insert into WZLX(WZBH,WZMS) values('%s','%s')",m_code,m_miaoshu);
			pRst->ExecSql(str);
			nItem=m_list.InsertItem(0,m_code);
			m_list.SetItemText(nItem,1,m_miaoshu);
			m_list.SetHotItem(nItem);
		}
		else //update
		{
			str.Format("update WZLX set WZMS ='%s' where WZBH='%s'",m_miaoshu,m_code);
			pRst->ExecSql(str);
			for(int i=0;i<m_list.GetItemCount();i++)
			{	
				str=m_list.GetItemText(i,0);
				str.MakeUpper();
				m_code.MakeUpper();
				if(lstrcmp(str,m_code)==0)
				{
					m_list.SetHotItem(i);
					nItem=i;
					m_list.SetItemText(nItem,1,m_miaoshu);
					break;
				}
			}
		}
		UpdateData(FALSE);
	}
	catch (...) {
		WriteLog("添加修改违法代码失败!");
		ShowMessage("添加修改违法代码失败!",MB_OK | MB_ICONERROR);
	}
	
}

//获取数据。
void CDlgSetCode::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	nItem=pNMListView->iItem;
	
	CString str=m_list.GetItemText(nItem,0);
	m_code=str;
	str=m_list.GetItemText(nItem,0);
	m_miaoshu=m_list.GetItemText(nItem,1);
	CString sYXJ=m_list.GetItemText(nItem,2);	
	if (sYXJ.GetLength()<2) {
		GetDlgItem(IDC_BUTTON_CY)->SetWindowText("设置为常用代码[&E]");
	}else{
		GetDlgItem(IDC_BUTTON_CY)->SetWindowText("取消常用代码设置[&E]");
	}
	
	
	UpdateData(FALSE);
	
	*pResult = 0;	
}

void CDlgSetCode::OnDelCode() 
{
	try{
		CVideoCaptureView* pView=CVideoCaptureView::GetView();
		if(!pView)
			return;
		CString str;


		CString str1=m_list.GetItemText(nItem,0);
		str.Format("DELETE from WZLX where WZBH='%s'",str1);
		pView->pConn->Execute(str);
		m_list.DeleteItem(nItem);
		if(m_list.GetItemCount()<=nItem)
			nItem--;
		m_list.SetHotItem(nItem);
		
		str=m_list.GetItemText(nItem,0);
		m_code=str;
		str=m_list.GetItemText(nItem,0);
		m_miaoshu=m_list.GetItemText(nItem,1);
		
		UpdateData(FALSE);
	}
	catch (...) {
		WriteLog("删除违法代码失败!");
		ShowMessage("删除违法代码失败!",MB_OK | MB_ICONERROR);
	}

}

//修改默认的超速违章
void CDlgSetCode::OnButtonSetSpeed() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView) return;
	CString str=m_list.GetItemText(nItem,0);
	::WritePrivateProfileString("SYSTEM","SPEEDCODE",str,".\\config.ini");
	GetDlgItem(IDC_SPEED_CODE)->SetWindowText("当前超速代码为:"+str);
	pView->m_szUpSpeed=str;

}

void CDlgSetCode::OnSetSlowSpeed() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView) return;
	CString str=m_list.GetItemText(nItem,0);
	::WritePrivateProfileString("SYSTEM","SLOWCODE",str,".\\config.ini");
	GetDlgItem(IDC_SLOW_SPEED)->SetWindowText("当前低速代码为:"+str);
	pView->m_szSlowSpeed=str;	
}

void CDlgSetCode::OnButtonCy() 
{
	CVideoCaptureView* pView=CVideoCaptureView::GetView();
	if(!pView) return;
	if (nItem<0) {
		return;
	}
	
	
	CString wzbh=m_list.GetItemText(nItem,0);
	CString wzms=m_list.GetItemText(nItem,1);
	CString sYXJ=m_list.GetItemText(nItem,2);

	CString str;
	if (sYXJ.GetLength()<2) {
		try{
			str.Format("UPDATE WZLX SET YXJ=2 WHERE WZBH='%s'",wzbh);
			pView->pConn->Execute(str);
			m_list.DeleteItem(nItem);
			nItem=m_list.InsertItem(0,wzbh);
			m_list.SetItemText(nItem,1,wzms);
			m_list.SetItemText(nItem,2,"常用代码");
			m_list.EnsureVisible(nItem,true);
			m_list.SetHotItem(nItem);
			m_list.SetCheck(nItem);
		
		}catch (...) {
			WriteLog("添加修改违法代码失败!");
		}
		GetDlgItem(IDC_BUTTON_CY)->SetWindowText("取消常用代码设置[&E]");
	}
	if (sYXJ.GetLength()>=2) {	
		try{
			str.Format("UPDATE WZLX SET YXJ=1 WHERE WZBH='%s'",wzbh);
			GetDlgItem(IDC_BUTTON_CY)->SetWindowText("设置为代码设置[&E]");
			pView->pConn->Execute(str);
			m_list.DeleteItem(nItem);
			nItem=m_list.InsertItem(m_list.GetItemCount(),wzbh);
			m_list.SetItemText(nItem,1,wzms);
			m_list.SetItemText(nItem,2,"");
			m_list.EnsureVisible(nItem,true);
			m_list.SetHotItem(nItem);
			m_list.SetCheck(nItem);
		}catch (...) {
		}
	}
	
	
	
		
}

⌨️ 快捷键说明

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