📄 editmode.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 + -