test.cpp

来自「高速公路收费系统车道软件. 功能: 1 检测公路过往车辆 2 收费过程控制和数」· C++ 代码 · 共 1,129 行 · 第 1/3 页

CPP
1,129
字号
		theApp.memDC.DrawText("Q    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case SAVE_CARD_KEY:
		theApp.memDC.DrawText("R    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case LACK_KEY:
		theApp.memDC.DrawText("S    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键   ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case SPARE5_KEY:
		theApp.memDC.DrawText("T    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键   ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case ARMY_POLICE_KEY:
		theApp.memDC.DrawText("U    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("军警车  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case MONEY_CARD_KEY:
		theApp.memDC.DrawText("V    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case VIOLATE_KEY:
		theApp.memDC.DrawText("W    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("违章    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case SPARE6_KEY:
		theApp.memDC.DrawText("X    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText(" 备用键  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case FREEB_KEY:
		theApp.memDC.DrawText("Y    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("备用键  ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case MODIFY_KEY:
		theApp.memDC.DrawText("SPACE",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("修改    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case VALID_KEY:
		theApp.memDC.DrawText("ENTER",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		nTop=nScreenY*13/24;
		theApp.memDC.DrawText("确认    ",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
		break;
	case CANCEL_KEY:
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,KEY_TEST_CANCEL,0);
		break;
	}
	DrawScreen();
	return TRUE;
}

//	绘制工作窗口
CTestKey::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_KEY_MENU:
		DrawKeyValue();
		break;
	}
}

//	绘制专用键盘按键值
void CTestKey::DrawKeyValue()
{
	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/6;
	nTop=nScreenY*11/24;
	theApp.memDC.DrawText("按动键:",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY/2;
	theApp.memDC.DrawText("代码 :",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*13/24;
	theApp.memDC.DrawText("功能 :",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nLeft=nScreenX/8;
	nTop=nScreenY*17/24;
	theApp.memDC.DrawText("取消键 / Esc 键 ---> 返回主菜单",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}


UINT CTestTfi::nStatus;
UINT CTestTfi::nTestItem;
CTestTfi::CTestTfi()
{
}

//	处理按键
BOOL CTestTfi::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_TFI_MENU:
		bLegalityFlag=ProcessKeyOfMenu(nChar);
		break;
	}
	return bLegalityFlag;
}

//	处理按键
BOOL CTestTfi::ProcessKeyOfMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_TFI_AUTO;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,TFI_TEST_SELECT,0);
		break;
	case TWO_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_TFI_OPEN;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,TFI_TEST_SELECT,0);
		break;
	case THREE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_TFI_CLOSE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,TFI_TEST_SELECT,0);
		break;
	case FOUR_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_TFI_OFF;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,TFI_TEST_SELECT,0);
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,TFI_TEST_CANCEL,0);
		break;
	}
	return bLegalityFlag;
}

//	绘制工作窗口
CTestTfi::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_TFI_MENU:
		DrawTfiMenu();
		break;
	}
}

//	绘制TFI菜单
void CTestTfi::DrawTfiMenu()
{
	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*7/24;
	theApp.memDC.DrawText("收费显示牌测试",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*3/8;
	theApp.memDC.DrawText("1 - 自动测试",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("2 - 点亮背景灯",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*11/24;
	theApp.memDC.DrawText("3 - 熄灭背景灯",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY/2;
	theApp.memDC.DrawText("4 - 关显示",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nLeft=nScreenX/6;
	nTop=nScreenY*17/24;
	theApp.memDC.DrawText("取消键 / Esc 键 ---> 返回主菜单",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

UINT CTestTfi::TestItem()
{
	return nTestItem;
}

UINT CTestPrinter::nStatus;
UINT CTestPrinter::nTestItem;
CTestPrinter::CTestPrinter()
{
}

//	处理按键
BOOL CTestPrinter::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_PRINTER_MENU:
		bLegalityFlag=ProcessKeyOfMenu(nChar);
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	处理按键
BOOL CTestPrinter::ProcessKeyOfMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_PRINTER_CLEAR;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,PRINTER_TEST_SELECT,0);
		break;
	case TWO_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_PRINTER_FEED;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,PRINTER_TEST_SELECT,0);
		break;
	case THREE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_PRINTER_INFO;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,PRINTER_TEST_SELECT,0);
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,PRINTER_TEST_CANCEL,0);
		break;
	}
	return bLegalityFlag;
}

//	绘制工作窗口
CTestPrinter::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_PRINTER_MENU:
		DrawPrinterMenu();
		break;
	}
}

//	绘制票据打印机测试菜单
void CTestPrinter::DrawPrinterMenu()
{
	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*7/24;
	theApp.memDC.DrawText("票据打印机测试",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*3/8;
	theApp.memDC.DrawText("1 - 清空打印缓冲区",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("2 - 进纸",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*11/24;
	theApp.memDC.DrawText("3 - 打印票据",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nLeft=nScreenX/6;
	nTop=nScreenY*17/24;
	theApp.memDC.DrawText("取消键 / Esc 键 ---> 返回主菜单",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

UINT CTestPrinter::TestItem()
{
	return nTestItem;
}

UINT CTestOverlay::nStatus;
UINT CTestOverlay::nTestItem;
CTestOverlay::CTestOverlay()
{
}

//	处理按键
BOOL CTestOverlay::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_OVERLAY_MENU:
		bLegalityFlag=ProcessKeyOfMenu(nChar);
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	处理按键
BOOL CTestOverlay::ProcessKeyOfMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_OVERLAY_TIME;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,OVERLAY_TEST_SELECT,0);
		break;
	case TWO_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_OVERLAY_LANE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,OVERLAY_TEST_SELECT,0);
		break;
	case THREE_KEY:
		bLegalityFlag=TRUE;
		nTestItem=TEST_OVERLAY_INFO;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,OVERLAY_TEST_SELECT,0);
		break;
	case CANCEL_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,OVERLAY_TEST_CANCEL,0);
		break;
	}
	return bLegalityFlag;
}

//	绘制工作窗口
CTestOverlay::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_OVERLAY_MENU:
		DrawOverlayMenu();
		break;
	}
}

//	绘制字符叠加器菜单
void CTestOverlay::DrawOverlayMenu()
{
	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*7/24;
	theApp.memDC.DrawText("字符叠加器测试",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
	nLeft=nScreenX/12;
	nTop=nScreenY*3/8;
	theApp.memDC.DrawText("1 - 更新当前时间",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*5/12;
	theApp.memDC.DrawText("2 - 叠加车道信息",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nTop=nScreenY*11/24;
	theApp.memDC.DrawText("3 - 叠加收费信息",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	nLeft=nScreenX/6;
	nTop=nScreenY*17/24;
	theApp.memDC.DrawText("取消键 / Esc 键 ---> 返回主菜单",CRect(nLeft,nTop,nRight,nButtom),DT_LEFT|DT_TOP);
	DrawScreen();
}

UINT CTestOverlay::TestItem()
{
	return nTestItem;
}

⌨️ 快捷键说明

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