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

📄 laneinitial.cpp

📁 高速公路收费系统车道软件. 功能: 1 检测公路过往车辆 2 收费过程控制和数据采集 3 车辆信息和图片上传服务器.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,PASSWORD_CHANGE_PASSWORD_FAILURE);
		break;
	case CANCEL_KEY:		//收费员再次尝试更改密码
		bLegalityFlag=TRUE;	
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,PASSWORD_CHANGE_PASSWORD_RETRY);
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

CPassword::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_CHANGE_PASSWORD:
		DrawInputPassword();
		break;
   case SHOW_PASSWORD_RESULT:
		DrawResult();
		break;
	}
}

//	绘制输入密码窗口
void CPassword::DrawInputPassword()
{
	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;
	switch(nChildStatus){
	case INPUT_NEW_PASSWORD1:
		theApp.memDC.DrawText("请输入新密码",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
		break;
	case INPUT_NEW_PASSWORD2:
		theApp.memDC.DrawText("请再次输入新密码",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
		break;
	default:
		nChildStatus=INPUT_OLD_PASSWORD;
		theApp.memDC.DrawText("输入旧密码",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
		break;
	}
	nTop=nScreenY*7/12;
	theApp.memDC.DrawText("[        ]",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
	memset(strBuff,0,12);
}

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

//	提示密码修改失败
void CPassword::DrawResult()
{
	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*11/24;
	if(theApp.Font2!=0) theApp.memDC.SelectObject(theApp.Font2);
	theApp.memDC.DrawText("修改密码失败",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	if(theApp.Font1!=0) theApp.memDC.SelectObject(theApp.Font1);
	nTop=nScreenY*14/24;
	theApp.memDC.DrawText("取消键 ---> 重试",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*15/24;
	theApp.memDC.DrawText("确认键 ---> 退出",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
}

//	返回旧密码
long CPassword::OldPassword()
{
	return nOldPassword;
}

//	返回第一次输入的新密码
long CPassword::NewPassword1()
{
	return nNewPassword1;
}

//	返回第二次输入的旧密码
long CPassword::NewPassword2()
{
	return nNewPassword2;
}

UINT CModeMenu::nStatus;
char CModeMenu::nWorkMode;
CModeMenu::CModeMenu()
{
}

//	处理按键
BOOL CModeMenu::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		nWorkMode=WORK_MODE_NORMAL;
		DrawInputNumber(nChar);
		bLegalityFlag=TRUE;
		break;
	case TWO_KEY:
		nWorkMode=WORK_MODE_TEST;
		DrawInputNumber(nChar);
		bLegalityFlag=TRUE;
		break;
	case THREE_KEY:
		nWorkMode=WORK_MODE_SETUP;
		DrawInputNumber(nChar);
		bLegalityFlag=TRUE;
		break;
	case FOUR_KEY:
		nWorkMode=WORK_MODE_EDIT;
		DrawInputNumber(nChar);
		bLegalityFlag=TRUE;
		break;
	case VALID_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,MODE_SELECT_OK,0);
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		if(nWorkMode!=WORK_MODE_NULL){
			DrawModeMenu();
		} else {
			SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,MODE_SELECT_CANCEL,0);
		}
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	绘制工作窗口
CModeMenu::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_MODE_MENU:
		DrawModeMenu();
	}
}

//	绘制模式选择菜单
void CModeMenu::DrawModeMenu()
{
	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;
	theApp.memDC.DrawText("2 - 测试方式",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY/2;
	theApp.memDC.DrawText("3 - 设置方式",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*13/24;
	theApp.memDC.DrawText("4 - 编辑方式",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nLeft=nScreenX/8;
	nTop=nScreenY*17/24;
	theApp.memDC.DrawText("选择号码后按确认键            [   ]",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
	nWorkMode=WORK_MODE_NULL;
}

void CModeMenu::DrawInputNumber(UINT nValue)
{
	int nScreenX=theApp.nScreenX;
	int nScreenY=theApp.nScreenY;
		//虚函数并不调用父类的构造函数,故需显式的设置绘图环境
	int nLeft=nScreenX/8;
	int nTop=nScreenY*17/24;
	int nRight=nScreenX*5/8;
	int nButtom=nScreenY*4/5;
	char tmpStr[40];
	memset(tmpStr,0,40);
	sprintf(tmpStr,"选择号码后按确认键            [ %c ]",nValue);
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

char CModeMenu::WorkMode()
{
	return nWorkMode;
}

UINT CEndShift::nStatus;
CEndShift::CEndShift()
{
}

//	处理按键
BOOL CEndShift::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_END_INVOICE:
		bLegalityFlag=ProcessKeyOfInvoice(nChar);
		break;
	case SHOW_PRESS_VALID:
		bLegalityFlag=ProcessKeyOfValid(nChar);
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	显示剩余发票号码窗口下处理按键
BOOL CEndShift::ProcessKeyOfInvoice(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,END_INVOICE_CANCEL);
		break;
	case VALID_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,END_INVOICE_OK);
		break;
	case VALID_NO_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,END_INVOICE_NO_OK);
		break;
	}
	return bLegalityFlag;
}

//	显示等待确认交班窗口下处理按键
BOOL CEndShift::ProcessKeyOfValid(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,END_VALID_CANCEL);
		break;
	case VALID_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,END_VALID_OK);
		break;
	}
	return bLegalityFlag;
}

CEndShift::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_END_INVOICE:
		DrawEndInvoice();
		break;
	case SHOW_PRESS_VALID:
		DrawPressValid();
		break;
	}
}

//	绘制发票止号窗口
void CEndShift::DrawEndInvoice()
{
	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);
	CStatInfo m_clsStat;
	CLaneInfo m_clsLane;
	nTop=nScreenY*10/24;
	char tmpStr[80];
	memset(tmpStr,0,80);
	sprintf(tmpStr,"电脑票剩余号码:       [  %.7u  ]   ",m_clsStat.GetInvoiceNow(0));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*11/24;
	memset(tmpStr,0,80);
//以下调试中出现问题;票号返回64位,一个Sprintf用两个不行;故分开
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('1',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(1));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*12/24;
	memset(tmpStr,0,80);
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('2',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(2));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*13/24;
	memset(tmpStr,0,80);
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('3',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(3));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*14/24;
	memset(tmpStr,0,80);
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('4',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(4));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*15/24;
	memset(tmpStr,0,80);
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('5',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(5));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*16/24;
	memset(tmpStr,0,80);
	sprintf(tmpStr,"¥%2d定额票剩余号码:   [  %.7u  ]   ",
		m_clsLane.SearchFare('6',TYPE_NORMAL),	m_clsStat.GetInvoiceNow(6));
	theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nTop=nScreenY*18/24;
	theApp.memDC.DrawText("“确认”键 ---> 交班,“取消”键 ---> 返回",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
}

//	绘制确认交班窗口
void CEndShift::DrawPressValid()
{
	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;
	if(theApp.Font2!=0) theApp.memDC.SelectObject(theApp.Font2);
	theApp.memDC.DrawText("交 班",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	if(theApp.Font1!=0) theApp.memDC.SelectObject(theApp.Font1);
	nTop=nScreenY*15/24;
	theApp.memDC.DrawText("按确认",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	DrawScreen();
}

⌨️ 快捷键说明

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