📄 laneinitial.cpp
字号:
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 + -