📄 setparam.cpp
字号:
// SetParam.cpp: implementation of the CSetParam class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "lane_new.h"
#include "SetParam.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CLane_newApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
UINT CSetParam::nLine;
UINT CSetParam::nStatus;
char CSetParam::strParam[128];
UINT CSetParam::nSelectItem;
CSetParam::CSetParam()
{
}
// 处理按键
BOOL CSetParam::ProcessKeyboard(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
switch(nStatus){
case SHOW_SET_MENU:
bLegalityFlag=ProcessKeyAtMenu(nChar);
break;
case SHOW_SET_PARAM1:
case SHOW_SET_PARAM2:
bLegalityFlag=ProcessKeyAtParam1(nChar);
break;
}
if(CScreen::ProcessKeyboard(nChar))
bLegalityFlag=TRUE;
return bLegalityFlag;
}
// 处理设置菜单下的按键
BOOL CSetParam::ProcessKeyAtMenu(UINT nChar)
{
BOOL bLegalityFlag=FALSE;
switch(nChar){
case ONE_KEY:
nSelectItem=1;
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_MENU_OK,0);
break;
case END_KEY:
bLegalityFlag=TRUE;
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,END_SHIFT_PRESS,0);
break;
}
return bLegalityFlag;
}
// 处理设置参数窗口1下的按键
BOOL CSetParam::ProcessKeyAtParam1(UINT nChar)
{
static char strInputData[16]; //存储用户键入的字符串
if(nChar==VALID_KEY){ //确认键保存数据,返回
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_PARAM_OK,0);
return TRUE;
}
if(nChar==CANCEL_KEY){ //取消键放弃修改,返回
SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_PARAM_CANCEL,0);
return TRUE;
}
if(nChar==UP_KEY){ //光标上移
if(nLine==0){
nLine=7;
} else {
nLine--;
}
memset(strInputData,0,16);
DrawParamValue();
return TRUE;
}
if(nChar==DOWN_KEY){ //光标下移
if(nLine==7)
nLine=0;
else
nLine++;
memset(strInputData,0,16);
DrawParamValue();
return TRUE;
}
switch(nLine){ //判断当前光标所在行数
case 0: //车道序号
case 1: //车道地址
case 2: //收费站号码
// 允许范围:0 - 99
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
if(strlen(strInputData)==1){
strInputData[1]=strParam[nLine*16+1]=nChar;
} else {
memset(strInputData,0,16);
strInputData[0]=strParam[nLine*16]=nChar;
strParam[nLine*16+1]=' ';
}
}
break;
case 3: //本地端口号
case 4: //消息服务器端口号
// 允许范围:0 - 9999
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
switch(strlen(strInputData)){
case 1:
strInputData[1]=strParam[nLine*16+1]=nChar;
memmove(strParam+nLine*16+2," ",2);
break;
case 2:
strInputData[2]=strParam[nLine*16+2]=nChar;
strParam[nLine*16+3]=' ';
break;
case 3:
strInputData[3]=strParam[nLine*16+3]=nChar;
break;
default:
memset(strInputData,0,16);
strInputData[0]=strParam[nLine*16]=nChar;
memmove(strParam+nLine*16+1," ",3);
break;
}
}
break;
case 5: //消息服务器IP地址
case 6: //图片服务器IP地址
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
switch(strlen(strInputData)){
case 1:
if(((strInputData[0]==ONE_KEY)&&(nChar==NINE_KEY))||((strInputData[0]==TWO_KEY)&&(nChar<THREE_KEY))){
strInputData[1]=strParam[nLine*16+1]=nChar;
memmove(strParam+nLine*16+2," . . . ",13);
}
break;
case 2:
if(((atoi(strInputData)==19)&&(nChar>=TWO_KEY))||((atoi(strInputData)==22)&&(nChar<=THREE_KEY))||(strInputData[1]<TWO_KEY)){
strInputData[2]=strParam[nLine*16+2]=nChar;
strInputData[3]=strParam[nLine*16+3]='.';
memmove(strParam+nLine*16+4," . . ",11);
}
break;
case 4:
if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
strInputData[4]=strParam[nLine*16+4]=nChar;
memmove(strParam+nLine*16+5," . . ",10);
}
break;
case 5:
if((strInputData[4]<TWO_KEY)||((strInputData[4]==TWO_KEY)&&(nChar<=FIVE_KEY))){
strInputData[5]=strParam[nLine*16+5]=nChar;
memmove(strParam+nLine*16+6," . . ",9);
}
break;
case 6:
if((atoi(strInputData+4)<25)||((atoi(strInputData+4)==25)&&(nChar<=FIVE_KEY))){
strInputData[6]=strParam[nLine*16+6]=nChar;
strInputData[7]=strParam[nLine*16+7]='.';
memmove(strParam+nLine*16+8," . ",7);
}
break;
case 8:
if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
strInputData[8]=strParam[nLine*16+8]=nChar;
memmove(strParam+nLine*16+9," . ",6);
}
break;
case 9:
if((strInputData[8]<TWO_KEY)||((strInputData[8]==TWO_KEY)&&(nChar<=FIVE_KEY))){
strInputData[9]=strParam[nLine*16+9]=nChar;
memmove(strParam+nLine*16+10," . ",5);
}
break;
case 10:
if((atoi(strInputData+8)<25)||((atoi(strInputData+8)==25)&&(nChar<=FIVE_KEY))){
strInputData[10]=strParam[nLine*16+10]=nChar;
strInputData[11]=strParam[nLine*16+11]='.';
memmove(strParam+nLine*16+12," ",3);
}
break;
case 12:
if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
strInputData[12]=strParam[nLine*16+12]=nChar;
memmove(strParam+nLine*16+13," ",2);
}
break;
case 13:
if((strInputData[12]<TWO_KEY)||((strInputData[12]==TWO_KEY)&&(nChar<=FIVE_KEY))){
strInputData[13]=strParam[nLine*16+13]=nChar;
strParam[nLine*16+14]=' ';
}
break;
case 14:
if((atoi(strInputData+12)<25)||((atoi(strInputData+12)==25)&&(nChar<=FIVE_KEY))){
strInputData[14]=strParam[nLine*16+14]=nChar;
}
break;
default:
if((nChar==ONE_KEY)||(nChar==TWO_KEY)){
memset(strInputData,0,16);
strInputData[0]=strParam[nLine*16]=nChar;
memmove(strParam+nLine*16+1," . . . ",14);
}
break;
}
}
break;
case 7: //车道备份数据保存时间
// 允许范围:0 - 99
if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
if(strlen(strInputData)==1){
strInputData[1]=strParam[nLine*16+1]=nChar;
} else {
memset(strInputData,0,16);
strInputData[0]=strParam[nLine*16]=nChar;
strParam[nLine*16+1]=' ';
}
}
break;
}
DrawParamValue();
return TRUE;
}
// 绘制工作窗口
CSetParam::DrawWorkInfo(UINT nSlaveStatus)
{
nStatus=nSlaveStatus;
switch(nSlaveStatus){
case SHOW_SET_MENU:
DrawSetMenu();
break;
case SHOW_SET_PARAM1:
case SHOW_SET_PARAM2:
DrawParam1();
break;
}
}
// 绘制设置菜单
void CSetParam::DrawSetMenu()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -