📄 keymenu.cpp
字号:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <stdlib.h>
#include "keypass.h"
#include "lcd_api.h"
#include "keymenu.h"
#include "menu.h"
#include "keyscan.h"
char PasswordBuff[10];
int SysExitState = 0;
int KeyPadMenuInit( )
{
int status;
InitKeyPad( );
status = MENUManager.SysMenuInit( );
if( status < 0 ) return status;
/* initialize graphics mode */
LCD_Init( "mlib.chr", "ascii.chr" );
LCD_SetMode( 1 ); // set to XOR mode
return 1;
}
KEY GetKey()
{
int KeyCode;
KEY ReturnCode;
KeyCode = ReturnKeyCode( );
if(KeyCode==-1) return _NOP;
switch( KeyCode )
{
// 'Menu'
case 0x000f: ReturnCode=_Menu; break;
// '+'
case 0x0118: ReturnCode=_Up; break;
// '-'
case 0x0119: ReturnCode=_Down; break;
// '->'
case 0x011a: ReturnCode=_Right; break;
// '<-'
case 0x011b: ReturnCode=_Left; break;
// 'Esc'
case 0x0211: ReturnCode=_Return; break;
//'DEL'
case 0x0312: ReturnCode=_Cancel; break;
//'Enter'
case 0x1c0d: ReturnCode=_Enter; break;
//'*'
case 0x0c2e: ReturnCode=_KeyStar; break;
//'#'
case 0x0b20: ReturnCode=_KeyWell; break;
//'.'
case 0x0c2a: ReturnCode=_KeyDot; break;
//' '
case 0x0b23: ReturnCode=_KeySpace; break;
case 0x0b30: ReturnCode=_Key0; break;
case 0x0231: ReturnCode=_Key1; break;
case 0x0332: ReturnCode=_Key2; break;
case 0x0433: ReturnCode=_Key3; break;
case 0x0534: ReturnCode=_Key4; break;
case 0x0635: ReturnCode=_Key5; break;
case 0x0736: ReturnCode=_Key6; break;
case 0x0837: ReturnCode=_Key7; break;
case 0x0938: ReturnCode=_Key8; break;
case 0x0a39: ReturnCode=_Key9; break;
case 0x0341: ReturnCode=_KeyA; break;
case 0x0342: ReturnCode=_KeyB; break;
case 0x0343: ReturnCode=_KeyC; break;
case 0x0444: ReturnCode=_KeyD; break;
case 0x0445: ReturnCode=_KeyE; break;
case 0x0446: ReturnCode=_KeyF; break;
case 0x0547: ReturnCode=_KeyG; break;
case 0x0548: ReturnCode=_KeyH; break;
case 0x0549: ReturnCode=_KeyI; break;
case 0x064A: ReturnCode=_KeyJ; break;
case 0x064B: ReturnCode=_KeyK; break;
case 0x064C: ReturnCode=_KeyL; break;
case 0x074D: ReturnCode=_KeyM; break;
case 0x074E: ReturnCode=_KeyN; break;
case 0x074F: ReturnCode=_KeyO; break;
case 0x0850: ReturnCode=_KeyP; break;
case 0x0851: ReturnCode=_KeyQ; break;
case 0x0852: ReturnCode=_KeyR; break;
case 0x0853: ReturnCode=_KeyS; break;
case 0x0954: ReturnCode=_KeyT; break;
case 0x0955: ReturnCode=_KeyU; break;
case 0x0956: ReturnCode=_KeyV; break;
case 0x0a57: ReturnCode=_KeyW; break;
case 0x0a58: ReturnCode=_KeyX; break;
case 0x0a59: ReturnCode=_KeyY; break;
case 0x0a5a: ReturnCode=_KeyZ; break;
default: ReturnCode=_NOP; break;
}
return ReturnCode;
}
KPState GetKPState=SHOW;
int KeyPadOperation( )
{
KEY key;
GetKPState=KeyPass( );
if(GetKPState!=MENU) return 0; /////////////////////???
key = GetKey( );
switch( key )
{
case _Menu:
MENUManager.ShowMenu( 0 );
break;
case _Up:
MENUManager.MenuItemBarUp( );
break;
case _Down:
MENUManager.MenuItemBarDn( );
break;
case _Left:
MENUManager.MenuItemInc( );
break;
case _Right:
MENUManager.MenuItemDec( );
break;
case _Return:
MENUManager.AbnormalPro( );
break;
case _Cancel:
MENUManager.DeleteInputData( );
break;
case _Enter:
MENUManager.MenuDrivedManualPro( );
break;
/*case _Add:
MENUManager.MenuItemINC( );
break;
case _Minus:
MENUManager.MenuItemDEC( );
break;*/
case _Key0:
MENUManager.GetInputData( '0', MulKeyFlg );
break;
case _Key1:
MENUManager.GetInputData( '1', MulKeyFlg );
break;
case _Key2:
MENUManager.GetInputData( '2', MulKeyFlg );
break;
case _Key3:
MENUManager.GetInputData( '3', MulKeyFlg );
break;
case _Key4:
MENUManager.GetInputData( '4', MulKeyFlg );
break;
case _Key5:
MENUManager.GetInputData( '5', MulKeyFlg );
break;
case _Key6:
MENUManager.GetInputData( '6', MulKeyFlg );
break;
case _Key7:
MENUManager.GetInputData( '7', MulKeyFlg );
break;
case _Key8:
MENUManager.GetInputData( '8', MulKeyFlg );
break;
case _Key9:
MENUManager.GetInputData( '9', MulKeyFlg );
break;
case _KeyA:
MENUManager.GetInputData( 'A', MulKeyFlg );
break;
case _KeyB:
MENUManager.GetInputData( 'B', MulKeyFlg );
break;
case _KeyC:
MENUManager.GetInputData( 'C', MulKeyFlg );
break;
case _KeyD:
MENUManager.GetInputData( 'D', MulKeyFlg );
break;
case _KeyE:
MENUManager.GetInputData( 'E', MulKeyFlg );
break;
case _KeyF:
MENUManager.GetInputData( 'F', MulKeyFlg );
break;
case _KeyG:
MENUManager.GetInputData( 'G', MulKeyFlg );
break;
case _KeyH:
MENUManager.GetInputData( 'H', MulKeyFlg );
break;
case _KeyI:
MENUManager.GetInputData( 'I', MulKeyFlg );
break;
case _KeyJ:
MENUManager.GetInputData( 'J', MulKeyFlg );
break;
case _KeyK:
MENUManager.GetInputData( 'K', MulKeyFlg );
break;
case _KeyL:
MENUManager.GetInputData( 'L', MulKeyFlg );
break;
case _KeyM:
MENUManager.GetInputData( 'M', MulKeyFlg );
break;
case _KeyN:
MENUManager.GetInputData( 'N', MulKeyFlg );
break;
case _KeyO:
MENUManager.GetInputData( 'O', MulKeyFlg );
break;
case _KeyP:
MENUManager.GetInputData( 'P', MulKeyFlg );
break;
case _KeyQ:
MENUManager.GetInputData( 'Q', MulKeyFlg );
break;
case _KeyR:
MENUManager.GetInputData( 'R', MulKeyFlg );
break;
case _KeyS:
MENUManager.GetInputData( 'S', MulKeyFlg );
break;
case _KeyT:
MENUManager.GetInputData( 'T', MulKeyFlg );
break;
case _KeyU:
MENUManager.GetInputData( 'U', MulKeyFlg );
break;
case _KeyV:
MENUManager.GetInputData( 'V', MulKeyFlg );
break;
case _KeyW:
MENUManager.GetInputData( 'W', MulKeyFlg );
break;
case _KeyX:
MENUManager.GetInputData( 'X', MulKeyFlg );
break;
case _KeyY:
MENUManager.GetInputData( 'Y', MulKeyFlg );
break;
case _KeyZ:
MENUManager.GetInputData( 'Z', MulKeyFlg );
break;
case _KeyStar:
MENUManager.GetInputData( '*', MulKeyFlg );
break;
case _KeyDot:
MENUManager.GetInputData( '.', MulKeyFlg );
break;
case _KeyWell:
MENUManager.GetInputData( '#', MulKeyFlg );
break;
case _KeySpace:
MENUManager.GetInputData( ' ', MulKeyFlg );
break;
default: break;
}
if(key==_Enter) return 1;
else return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -