📄 laneinitial.cpp
字号:
// LaneInitial.cpp: implementation of the CBeginShift class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "lane_new.h"
#include "LaneInitial.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CLane_newApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CNoteError::CNoteError()
{
}
// 绘制工作窗口
CNoteError::DrawWorkInfo(UINT nSlaveStatus)
{
if(nSlaveStatus==SHOW_ERROR_INFO){
DrawErrorInfo();
}
}
// 显示程序异常退出的原因
void CNoteError::DrawErrorInfo()
{
ClearScreen();
int nScreenX=theApp.nScreenX;
int nScreenY=theApp.nScreenY;
//虚函数并不调用父类的构造函数,故需显式的设置绘图环境
char tmpStr[80];
memset(tmpStr,0,80);
CLaneInfo m_clsLane;
m_clsLane.GetErrorInfo(tmpStr);
theApp.memDC.DrawText(tmpStr,CRect(0,nScreenY*7/8,nScreenX,nScreenY),DT_TOP|DT_CENTER);
DrawScreen();
}
// 异常窗口定时器超时,车道软件退出
CNoteError::ProcessTimerOut()
{
PostMessage(theApp.m_pMainWnd->m_hWnd,WM_NORMAL_QUIT,ABNORMAL,0);
}
UINT CBeginShift::nStatus;
CBeginShift::CBeginShift()
{
}
// 绘制工作窗口
CBeginShift::DrawWorkInfo(UINT nSlaveStatus)
{
nStatus=nSlaveStatus; //记录当前子状态
switch(nStatus){
case SHOW_PRESS_BEGIN:
DrawPressBegin();
break;
}
}
// 绘制上班窗口
void CBeginShift::DrawPressBegin()
{
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);
nTop=nScreenY*13/24;
theApp.memDC.DrawText("上 班",CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
if(theApp.Font1!=0) theApp.memDC.SelectObject(theApp.Font1);
DrawScreen();
}
// 按键处理程序,负责检查用户的键入是否合法
BOOL CBeginShift::ProcessKeyboard(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
switch(nChar){
case START_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,BEGIN_HAS_PRESS);
break;
}
if(CScreen::ProcessKeyboard(nChar))
bLegalityFlag=TRUE;
return bLegalityFlag;
}
long CLogin::nLoginNO;
long CLogin::nPassword;
UINT CLogin::nStatus;
char CLogin::strBuff[12];
CLogin::CLogin()
{
}
// 绘制工作窗口
CLogin::DrawWorkInfo(UINT nSlaveStatus)
{
nStatus=nSlaveStatus; //记录当前子状态
switch(nSlaveStatus){
case SHOW_INPUT_ID:
DrawInputID();
break;
case SHOW_INPUT_PASSWORD:
DrawInputPassword();
break;
}
}
// 绘制输入身份号
void CLogin::DrawInputID()
{
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 CLogin::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;
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 CLogin::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);
if(nStatus==SHOW_INPUT_ID){
memmove(tmpStr,"[ ]",9);
memmove(tmpStr+2,strBuff,strlen(strBuff));
} else {
char tmpStr1[12];
memset(tmpStr1,0,12);
memset(tmpStr1,'*',strlen(strBuff));
memmove(tmpStr,"[ ]",10);
memmove(tmpStr+2,tmpStr1,strlen(tmpStr1));
}
nTop=nScreenY*7/12;
theApp.memDC.DrawText(tmpStr,CRect(nLeft,nTop,nRight,nButtom),DT_CENTER|DT_TOP);
DrawScreen();
}
// 处理按键
BOOL CLogin::ProcessKeyboard(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
switch(nStatus){
case SHOW_INPUT_ID:
bLegalityFlag=ProcessKeyOfInputID(nChar);
break;
case SHOW_INPUT_PASSWORD:
bLegalityFlag=ProcessKeyOfInputPassword(nChar);
break;
}
if(CScreen::ProcessKeyboard(nChar))
bLegalityFlag=TRUE;
return bLegalityFlag;
}
// 输入身份卡卡号时处理按键
BOOL CLogin::ProcessKeyOfInputID(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
int nLen=strlen(strBuff);
if(nLen>=5){
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 {
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,LOGIN_INPUT_ID_CANCEL);
}
bLegalityFlag=TRUE;
break;
case VALID_KEY:
if(strlen(strBuff)!=0){
nLoginNO=atol(strBuff);
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,LOGIN_INPUT_ID_OK);
}
break;
}
}
return bLegalityFlag;
}
// 输入密码时处理按键
BOOL CLogin::ProcessKeyOfInputPassword(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
int nLen=strlen(strBuff);
if(nLen>=6){
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 {
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,LOGIN_INPUT_PASSWORD_CANCEL);
}
bLegalityFlag=TRUE;
break;
case VALID_KEY:
if(strlen(strBuff)!=0){
nPassword=atol(strBuff);
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,LOGIN_INPUT_PASSWORD_OK);
}
break;
}
}
return bLegalityFlag;
}
long CLogin::LoginNO()
{
return nLoginNO;
}
long CLogin::Password()
{
return nPassword;
}
/////////////////////////////////////////////////////////////
UINT CInformationBS::nStatus;
char CInformationBS::strInvoiceStart[12];
char CInformationBS::chShiftNO;
CInformationBS::CInformationBS()
{
}
// 处理按键
BOOL CInformationBS::ProcessKeyboard(UINT nChar)
{
CLaneInfo m_clsLaneInfo;
BOOL bLegalityFlag=FALSE;
switch(nStatus){
case SHOW_SHIFT_NO:
bLegalityFlag=ProcessKeyOfShiftNO(nChar);
break;
case SHOW_START_INVOICE:
if(m_clsLaneInfo.GetChangeComputerInvoiceFlag())
{
bLegalityFlag=ProcessKeyOfInvoice2(nChar);
}
else
{
bLegalityFlag=ProcessKeyOfInvoice(nChar);
}
break;
}
if(CScreen::ProcessKeyboard(nChar))
bLegalityFlag=TRUE;
return bLegalityFlag;
}
// 等待显示发票号时处理按键 不修改发票号码
BOOL CInformationBS::ProcessKeyOfInvoice(UINT nChar)
{
CStatInfo m_clsStat;
BOOL bLegalityFlag=FALSE;
switch(nChar){
case CANCEL_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,SHIFT_DISPLAY_INVOICE_START_CANCEL);
break;
case VALID_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,SHIFT_DISPLAY_INVOICE_START_OK);
break;
case VALID_NO_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,SHIFT_DISPLAY_INVOICE_START_NO_OK);
break;
}
return bLegalityFlag;
}
// 等待显示发票号时处理按键 修改发票号码
BOOL CInformationBS::ProcessKeyOfInvoice2(UINT nChar)
{
CStatInfo m_clsStat;
static int nLen=0;
BOOL bLegalityFlag=FALSE;
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY))
{
int nLen=strlen(strInvoiceStart);
if(nLen>=7){
nLen=0;
memset(strInvoiceStart,0,12);
}
strInvoiceStart[nLen]=(char)nChar;
DrawComputerStartInvoice();
bLegalityFlag=TRUE;
} else
{
switch(nChar){
case CANCEL_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,SHIFT_DISPLAY_INVOICE_START_CANCEL);
break;
case VALID_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,nStatus,SHIFT_DISPLAY_INVOICE_START_OK);
m_clsStat.SetInvoiceStart(0,atoi(strInvoiceStart));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -