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

📄 editmode.cpp

📁 高速公路收费系统车道软件. 功能: 1 检测公路过往车辆 2 收费过程控制和数据采集 3 车辆信息和图片上传服务器.
💻 CPP
字号:
// EditMode.cpp: implementation of the CEditMode class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lane_new.h"
#include "EditMode.h"

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

extern CLane_newApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

UINT CEditMode::nStatus;
char CEditMode::strBuff[12];
long CEditMode::nInvoiceStart[7];
long CEditMode::nInvoiceEnd[7];
int CEditMode::nChildStatus=EDIT_NONE;
int CEditMode::nInvoiceType=EDIT_INVOICE_NONE;
CEditMode::CEditMode()
{
}

//	处理按键
BOOL CEditMode::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_EDIT_MENU:
		switch(nChildStatus){
		case EDIT_START_MENU:
			bLegalityFlag=ProcessKeyOfStartMenu(nChar);
			break;
		case EDIT_END_MENU:
			bLegalityFlag=ProcessKeyOfEndMenu(nChar);
			break;
		case EDIT_INVOICE:
			bLegalityFlag=ProcessKeyOfInvoice(nChar);
			break;
		case EDIT_NONE:
			bLegalityFlag=ProcessKeyOfEditMenu(nChar);
			break;
		}
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	编辑菜单下处理按键
BOOL CEditMode::ProcessKeyOfEditMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_START_MENU;
		DrawStartMenu();
		break;
	case TWO_KEY: 
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_END_MENU;
		DrawEndMenu();
		break;
	case END_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,END_SHIFT_PRESS,0);
		break;
	}
	return bLegalityFlag;
}

//	输入发票起号菜单下处理按键
BOOL CEditMode::ProcessKeyOfStartMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_COMPUTER_INVOICE_START;
		DrawInvoice();
		break;
	case TWO_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_1;
		DrawInvoice();
		break;
	case THREE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_2;
		DrawInvoice();
		break;
	case FOUR_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_3;
		DrawInvoice();
		break;
	case FIVE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_4;
		DrawInvoice();
		break;
	case SIX_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_5;
		DrawInvoice();
		break;
	case SEVEN_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_START_6;
		DrawInvoice();
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_NONE;
		DrawEditMenu();
		break;
	}
	return bLegalityFlag;
}

//	输入发票止号菜单下处理按键
BOOL CEditMode::ProcessKeyOfEndMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_COMPUTER_INVOICE_END;
		DrawInvoice();
		break;
	case TWO_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_1;
		DrawInvoice();
		break;
	case THREE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_2;
		DrawInvoice();
		break;
	case FOUR_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_3;
		DrawInvoice();
		break;
	case FIVE_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_4;
		DrawInvoice();
		break;
	case SIX_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_5;
		DrawInvoice();
		break;
	case SEVEN_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_INVOICE;
		nInvoiceType=EDIT_RATION_INVOICE_END_6;
		DrawInvoice();
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		nChildStatus=EDIT_NONE;
		DrawEditMenu();
		break;
	}
	return bLegalityFlag;
}
		
//	输入发票号码时处理按键
BOOL CEditMode::ProcessKeyOfInvoice(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
		int nLen=strlen(strBuff);
		if(nLen>=7){
			memset(strBuff,0,12);
			nLen=0;
		}
		strBuff[nLen]=(char)nChar;
		DrawInputNumber();
		bLegalityFlag=TRUE;
	} else {
		switch(nChar){
		case CANCEL_KEY:
			if(strlen(strBuff)>0){
				memset(strBuff,0,12);
				DrawInputNumber();
			} else {
				DrawEditMenu();
			}
			bLegalityFlag=TRUE;
			break;
		case VALID_KEY:
			if(strlen(strBuff)>0){
				SetInvoice(atol(strBuff));
				bLegalityFlag=TRUE;
				DrawEditMenu();
				SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,EDIT_NUMBER_OK,0);
			}
			break;
		}
	}
	return bLegalityFlag;
}

//	绘制工作窗口
CEditMode::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nStatus){
	case SHOW_EDIT_MENU:
		DrawEditMenu();
		break;
	}
}

//	绘制编辑菜单
void CEditMode::DrawEditMenu()
{
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
	ClearWorkRange();
	int nLeft=nScreenX/64;
	int nTop=nScreenY*4/15;
	int nButtom=nScreenY*4/5;
	int	nRight=nScreenX*5/8;
	theApp.memDC.Rectangle(CRect(nLeft,nTop,nRight,nButtom));
	nTop=nScreenY/3;
	theApp.memDC.DrawText("编辑模式菜单",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("1 - 编辑发票起号",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY/2;
	theApp.memDC.DrawText("2 - 编辑发票止号",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
	nChildStatus=EDIT_NONE;
//	nInvoiceType=EDIT_INVOICE_NONE;
}

//	绘制发票起号菜单
void CEditMode::DrawStartMenu()
{
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
	ClearWorkRange();
	int nLeft=nScreenX/64;
	int nTop=nScreenY*4/15;
	int nButtom=nScreenY*4/5;
	int	nRight=nScreenX*5/8;
	theApp.memDC.Rectangle(CRect(nLeft,nTop,nRight,nButtom));
	nTop=nScreenY/3;
	theApp.memDC.DrawText("编辑发票起号菜单",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("1 - 编辑电脑票起号",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*11/24;
	CLaneInfo m_clsLane;
	char tmpStr[40];
	memset(tmpStr,0,40);
	sprintf(tmpStr,"2 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('1',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*12/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"3 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('2',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*13/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"4 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('3',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*14/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"5 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('4',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*15/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"6 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('5',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*16/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"7 - 编辑¥%2d定额票起号",m_clsLane.SearchFare('6',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

//	绘制发票止号菜单
void CEditMode::DrawEndMenu()
{
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
	ClearWorkRange();
	int nLeft=nScreenX/64;
	int nTop=nScreenY*4/15;
	int nButtom=nScreenY*4/5;
	int	nRight=nScreenX*5/8;
	theApp.memDC.Rectangle(CRect(nLeft,nTop,nRight,nButtom));
	nTop=nScreenY/3;
	theApp.memDC.DrawText("编辑发票止号菜单",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("1 - 编辑电脑票止号",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*11/24;
	CLaneInfo m_clsLane;
	char tmpStr[40];
	memset(tmpStr,0,40);
	sprintf(tmpStr,"2 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('1',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*12/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"3 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('2',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*13/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"4 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('3',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*14/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"5 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('4',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*15/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"6 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('5',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*16/24;
	memset(tmpStr,0,40);
	sprintf(tmpStr,"7 - 编辑¥%2d定额票止号",m_clsLane.SearchFare('6',TYPE_NORMAL));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

//	绘制输入发票号码窗口
void CEditMode::DrawInvoice()
{
	ClearWorkRange();
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
	int	nLeft=nScreenX/8;
	int	nRight=nScreenX*17/32;
	int nTop=nScreenY*3/8;
	int nButtom=nScreenY*17/24;
	theApp.memDC.Rectangle(CRect(nLeft,nTop,nRight,nButtom));
	nTop=nScreenY/2;
	theApp.memDC.DrawText("输入发票号码",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*7/12;
	theApp.memDC.DrawText("[         ]",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
	memset(strBuff,0,12);
}

//	绘制输入的数字键
void CEditMode::DrawInputNumber()
{
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
	int	nLeft=nScreenX/8;
	int	nRight=nScreenX*17/32;
	int nTop=nScreenY*3/8;
	int nButtom=nScreenY*17/24;
	char tmpStr[12];
	memset(tmpStr,0,12);
	memmove(tmpStr,"[         ]",11);
	memmove(tmpStr+2,strBuff,strlen(strBuff));
	nTop=nScreenY*7/12;
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
}

//	设置发票号码
void CEditMode::SetInvoice(long nValue)
{
	switch(nInvoiceType){
	case EDIT_COMPUTER_INVOICE_START:	//编辑电脑票起号
		nInvoiceStart[0]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_1:	//编辑1型定额票起号
		nInvoiceStart[1]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_2:	//编辑2型定额票起号
		nInvoiceStart[2]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_3:	//编辑3型定额票起号
		nInvoiceStart[3]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_4:	//编辑4型定额票起号
		nInvoiceStart[4]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_5:	//编辑5型定额票起号
		nInvoiceStart[5]=nValue;
		break;
	case EDIT_RATION_INVOICE_START_6:	//编辑6型定额票起号
		nInvoiceStart[6]=nValue;
		break;
	case EDIT_COMPUTER_INVOICE_END:		//编辑电脑票止号
		nInvoiceEnd[0]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_1:		//编辑1型定额票止号
		nInvoiceEnd[1]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_2:		//编辑2型定额票止号
		nInvoiceEnd[2]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_3:		//编辑3型定额票止号
		nInvoiceEnd[3]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_4:		//编辑4型定额票止号
		nInvoiceEnd[4]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_5:		//编辑5型定额票止号
		nInvoiceEnd[5]=nValue;
		break;
	case EDIT_RATION_INVOICE_END_6:		//编辑6型定额票止号
		nInvoiceEnd[6]=nValue;
		break;
	}
}

//	返回发票起号
long CEditMode::GetInvoiceStart(int nInvoiceType)	//票起号
{
	if((nInvoiceType>=0)&&(nInvoiceType<=6)){
	    return nInvoiceStart[nInvoiceType];
	}
	else return 0;

}

//	返回发票止号
long CEditMode::GetInvoiceEnd(int nInvoiceType)	//票止号
{
	if((nInvoiceType>=0)&&(nInvoiceType<=6)){
		return nInvoiceEnd[nInvoiceType];
	}
	return 0;
}

//	返回设置的发票类型
int CEditMode::GetEditInvoiceType()
{
	return nInvoiceType;
}

⌨️ 快捷键说明

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