📄 dlgsetcode.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 + -