builtinkeypad_0409.cpp
来自「该BSP是基于PXA270+WINCE的BSP」· C++ 代码 · 共 1,028 行 · 第 1/3 页
CPP
1,028 行
'W' , // 0x26
'X' , // 0x27
'Y' , // 0x28
'Z' , // 0x29
0 , // 0x2A
0 , // 0x2B
0 , // 0x2C
0 , // 0x2D
0 , // 0x2E
0 , // 0x2F
0 , // 0x30
VK_BACK , // 0x31
VK_CAPITAL , // 0x32
VK_CONTROL , // 0x33
VK_TRIGHT , // 0x34
VK_SPACE , // 0x35
VK_TACTION , // 0x36
VK_TBACK , // 0x37
VK_TDOWN , // 0x38
VK_TEND , // 0x39
VK_THOME , // 0x3A
VK_TLEFT , // 0x3B
VK_TPOUND , // 0x3C
VK_TSOFT1 , // 0x3D
VK_TSOFT2 , // 0x3E
VK_TSTAR , // 0x3F
VK_TTALK , // 0x40
VK_TUP , // 0x41
VK_TVOLUMEDOWN , // 0x42
VK_TVOLUMEUP , // 0x43
}; // MainScanCodeToVKeyTable[]
const UINT8 UniqueKeyScanCodeToVKeyTable[UNIQUE_KEY_SCAN_CODE_TABLE_SIZE] =
{
0x80, // '.' ,'<'
0x81, // '@' ,'>'
0x82, // '/' ,'{'
0x83, // '\\' ,'}'
0x84, // '!' ,'~'
0x85, // '?' ,'|'
0x86, // '$' ,'^'
0x87, // '&' ,'_'
0x88, // ':' ,'+'
0x89, // ';' ,'-'
0x8A, // ',' ,'%'
0x8B, // '\t' ,'='
0x8C, // '(' ,'['
0x8D, // ')' ,']'
// Unlike the language (real keyboard), we treat caps lock
// as shift for the quotes key. So it needs special handling
0x8E, // ''' ,'"'
0x00, //dummy for unassigned 8F
}; // UniqueKeyScanCodeToVKeyTable[]
// src: vk unshifted shifted
// transform: vk shifted? vk shifted?
static const MARKER_VK_MAP markerVkMapping[] = {
{ 0x80, {VK_PERIOD, XLLP_FALSE}, {VK_COMMA, XLLP_TRUE} }, // '.' ,'<'
{ 0x81, {'2', XLLP_TRUE}, {VK_PERIOD, XLLP_TRUE} }, // '@' ,'>'
{ 0x82, {VK_SLASH, XLLP_FALSE}, {VK_LBRACKET, XLLP_TRUE} }, // '/' ,'{'
{ 0x83, {VK_BACKSLASH, XLLP_FALSE}, {VK_RBRACKET, XLLP_TRUE} }, // '\\' ,'}'
{ 0x84, {'1', XLLP_TRUE}, {VK_BACKQUOTE, XLLP_TRUE} }, // '!' ,'~'
{ 0x85, {VK_SLASH, XLLP_TRUE}, {VK_BACKSLASH, XLLP_TRUE} }, // '?' ,'|'
{ 0x86, {'4', XLLP_TRUE}, {'6', XLLP_TRUE} }, // '$' ,'^'
{ 0x87, {'7', XLLP_TRUE}, {VK_HYPHEN, XLLP_TRUE} }, // '&' ,'_'
{ 0x88, {VK_SEMICOLON, XLLP_TRUE}, {VK_ADD, XLLP_FALSE} }, // ':' ,'+'
{ 0x89, {VK_SEMICOLON, XLLP_FALSE}, {VK_HYPHEN, XLLP_FALSE} }, // ';' ,'-'
{ 0x8A, {VK_COMMA, XLLP_FALSE}, {'5', XLLP_TRUE} }, // ',' ,'%'
{ 0x8B, {VK_NEXT, XLLP_FALSE}, {VK_EQUAL, XLLP_FALSE} }, // '\t' ,'='
{ 0x8C, {'9', XLLP_TRUE}, {VK_LBRACKET, XLLP_FALSE} }, // '(' ,'['
{ 0x8D, {'0', XLLP_TRUE}, {VK_RBRACKET, XLLP_FALSE} }, // ')' ,']'
{ 0x8E, {VK_APOSTROPHE,XLLP_FALSE}, {VK_APOSTROPHE,XLLP_TRUE} }, // ''' ,'"'
}; // markerVkMapping[] for SP
#else // ifdef BSP_SMARTPHONE: therefore, not BSP_SMARTPHONE
// PPC and CE.NET 5.0
// Need to do this to get non-AT keyboard key mappings through the system.
// Unique keys' scan codes need to be moved outside of range of standard
// keys, so that they can get special handling.
// Unpopulated slots get 0xFF as a flag
// Unique chars get 0x80+ and their own table
// Numbers get 0x00-0x0F; Alphas get 0x10-0x2F; other standards get
// 0x30-0x7F, as far as needed.
const UINT8 XllpScanCodeToWinCeScanCodeTable[XLLP_SCAN_CODE_MAX+1] = // not BSP_SMARTPHONE
{
0x10, // 'A', // Scan Code 0x0 // Bulverde KeyPad '1'
0x16, // 'G', // Scan Code 0x1 // Bulverde KeyPad '2'
0x1C, // 'M', // Scan Code 0x2 // Bulverde KeyPad '3'
0x22, // 'S', // Scan Code 0x3
0x80, // VK_PERIOD, // Scan Code 0x4
0x3A, // VK_HOME, // Scan Code 0x5
0x41, // VK_UP, // Scan Code 0x6
0xFF, // 0, // Scan Code 0x7
0xFF, // 0, // Scan Code 0x8
0xFF, // 0, // Scan Code 0x9
0x43, // VK_UP, // Scan Code 0xA // Bulverde Keypad Rotary key scroll up
0x42, // VK_DOWN, // Scan Code 0xB // Bulverde keypad Rotary key scroll down
0x36, // VK_RETURN, // Scan Code 0xC // Bulverde keypad Rotary key Action.
0xFF, // 0, // Scan Code 0xD
0xFF, // 0, // Scan Code 0xE
0xFF, // 0, // Scan Code 0xF
0x11, // 'B', // Scan Code 0x10 // Bulverde KeyPad '4'
0x17, // 'H', // Scan Code 0x11 // Bulverde KeyPad '5'
0x1D, // 'N', // Scan Code 0x12 // Bulverde KeyPad '6'
0x23, // 'T', // Scan Code 0x13
0x81, // VK_NUMPAD2, // Scan Code 0x14
0x32, // VK_CAPITAL, // Scan Code 0x15
0x38, // VK_DOWN, // Scan Code 0x16
0xFF, // 0, // Scan Code 0x17
0xFF, // 0, // Scan Code 0x18
0xFF, // 0, // Scan Code 0x19
0xFF, // 0, // Scan Code 0x1A
0xFF, // 0, // Scan Code 0x1B
0xFF, // 0, // Scan Code 0x1C
0xFF, // 0, // Scan Code 0x1D
0xFF, // 0, // Scan Code 0x1E
0xFF, // 0, // Scan Code 0x1F
0x12, // 'C', // Scan Code 0x20 // Bulverde KeyPad '7'
0x18, // 'I', // Scan Code 0x21 // Bulverde KeyPad '8'
0x1E, // 'O', // Scan Code 0x22 // Bulverde KeyPad '9'
0x24, // 'U', // Scan Code 0x23
0x28, // 'Y', // Scan Code 0x24
0x35, // VK_SPACE, // Scan Code 0x25
0x3B, // VK_LEFT, // Scan Code 0x26
0xFF, // 0, // Scan Code 0x27
0xFF, // 0, // Scan Code 0x28
0xFF, // 0, // Scan Code 0x29
0xFF, // 0, // Scan Code 0x2A
0xFF, // 0, // Scan Code 0x2B
0xFF, // 0, // Scan Code 0x2C
0xFF, // 0, // Scan Code 0x2D
0xFF, // 0, // Scan Code 0x2E
0xFF, // 0, // Scan Code 0x2F
0x13, // 'D', // Scan Code 0x30 // Bulverde KeyPad '*'
0x19, // 'J', // Scan Code 0x31 // Bulverde KeyPad '0'
0x1F, // 'P', // Scan Code 0x32 // Bulverde KeyPad '#'
0x25, // 'V', // Scan Code 0x33
0x29, // 'Z', // Scan Code 0x34
0x35, // VK_SPACE, // Scan Code 0x35
0x34, // VK_RIGHT, // Scan Code 0x36
0xFF, // 0, // Scan Code 0x37
0xFF, // 0, // Scan Code 0x38
0xFF, // 0, // Scan Code 0x39
0xFF, // 0, // Scan Code 0x3A
0xFF, // 0, // Scan Code 0x3B
0xFF, // 0, // Scan Code 0x3C
0xFF, // 0, // Scan Code 0x3D
0xFF, // 0, // Scan Code 0x3E
0xFF, // 0, // Scan Code 0x3F
0x14, // 'E', // Scan Code 0x40 // Bvd Keypad '1' remapped to F1
0x1A, // 'K', // Scan Code 0x41 // Bvd Keypad '2' remapped to up arrow
0x20, // 'Q', // Scan Code 0x42 // Bvd Keypad '3' remapped to F2
0x26, // 'W', // Scan Code 0x43
0x82, // VK_SLASH, // Scan Code 0x44
0x33, // VK_CONTROL, // Scan Code 0x45
0x36, // VK_EXECUTE, // Scan Code 0x46
0xFF, // 0, // Scan Code 0x47
0xFF, // 0, // Scan Code 0x48
0xFF, // 0, // Scan Code 0x49
0xFF, // 0, // Scan Code 0x4A // Bvd Keypad SCROLL UP remapped to VOLUME UP
0xFF, // 0, // Scan Code 0x4B // Bvd Keypad SCROLL DOWN remapped to VOLUME DOWN
0xFF, // 0, // Scan Code 0x4C // Bvd Keypad ACTION remapped to ACTION for now , change to POWER later
0xFF, // 0, // Scan Code 0x4D
0xFF, // 0, // Scan Code 0x4E
0xFF, // 0, // Scan Code 0x4F
0x15, // 'F', // Scan Code 0x50 // Bvd Keypad '4' remapped to left arrow
0x1B, // 'L', // Scan Code 0x51 // Bvd Keypad '5' remapped to action
0x21, // 'R', // Scan Code 0x52 // Bvd Keypad '6' remapped to right arrow
0x27, // 'X', // Scan Code 0x53
0x83, // VK_BACKSLASH, // Scan Code 0x54
0x37, // VK_BACK, // Scan Code 0x55
0xFF, // 0, // Scan Code 0x56
0xFF, // 0, // Scan Code 0x57
0xFF, // 0, // Scan Code 0x58
0xFF, // 0, // Scan Code 0x59
0xFF, // 0, // Scan Code 0x5A
0xFF, // 0, // Scan Code 0x5B
0xFF, // 0, // Scan Code 0x5C
0xFF, // 0, // Scan Code 0x5D
0xFF, // 0, // Scan Code 0x5E
0xFF, // 0, // Scan Code 0x5F
0x40, // VK_EXECUTE, // Scan Code 0x60 // Bvd Keypad '7' remapped to HOME
0x39, // VK_END, // Scan Code 0x61 // Bvd Keypad '8' remapped to DOWN
0x3D, // VK_LWIN, // Scan Code 0x62 // Bvd Keypad '9' remapped to BACK
0x3E, // VK_RWIN, // Scan Code 0x63
0x36, // VK_EXECUTE, // Scan Code 0x64
0xFF, // 0, // Scan Code 0x65
0xFF, // 0, // Scan Code 0x66
0xFF, // 0, // Scan Code 0x67
0xFF, // 0, // Scan Code 0x68
0xFF, // 0, // Scan Code 0x69
0xFF, // 0, // Scan Code 0x6A
0xFF, // 0, // Scan Code 0x6B
0xFF, // 0, // Scan Code 0x6C
0xFF, // 0, // Scan Code 0x6D
0xFF, // 0, // Scan Code 0x6E
0xFF, // 0, // Scan Code 0x6F
0x01, // '1', // Scan Code 0x70 // Bvd FTKeypad '1'
0x84, // VK_NUMPAD1,
0x02, // '2', // Scan Code 0x72 // Bvd FTKeypad '2'
0x85, // VK_NUMPAD3, // Scan Code 0x73
0x03, // '3', // Scan Code 0x74 // Bvd FTKeypad '3'
0xFF, // 0, // Scan Code 0x75
0xFF, // 0, // Scan Code 0x76
0xFF, // 0, // Scan Code 0x77
0xFF, // 0, // Scan Code 0x78
0xFF, // 0, // Scan Code 0x79
0xFF, // 0, // Scan Code 0x7A
0xFF, // 0, // Scan Code 0x7B
0xFF, // 0, // Scan Code 0x7C
0xFF, // 0, // Scan Code 0x7D
0xFF, // 0, // Scan Code 0x7E
0xFF, // 0, // Scan Code 0x7F
0x04, // '4', // Scan Code 0x80 // Bvd Keypad '7' remapped to HOME
0x86, // VK_NUMPAD4, // Scan Code 0x81 // Bvd Keypad '8' remapped to DOWN
0x05, // '5', // Scan Code 0x82 // Bvd Keypad '9' remapped to BACK
0x87, // VK_NUMPAD7, // Scan Code 0x83
0x06, // '6', // Scan Code 0x84
0xFF, // 0, // Scan Code 0x85
0xFF, // 0, // Scan Code 0x86
0xFF, // 0, // Scan Code 0x87
0xFF, // 0, // Scan Code 0x88
0xFF, // 0, // Scan Code 0x89
0xFF, // 0, // Scan Code 0x8A
0xFF, // 0, // Scan Code 0x8B
0xFF, // 0, // Scan Code 0x8C
0xFF, // 0, // Scan Code 0x8D
0xFF, // 0, // Scan Code 0x8E
0xFF, // 0, // Scan Code 0x8F
0x07, // '7', // Scan Code 0x90 // Bvd Keypad '*' remapped to TALK
0x88, // VK_ADD, // Scan Code 0x91 // Bvd Keypad '0' remapped to HOME
0x08, // '8', // Scan Code 0x92 // Bvd Keypad '#' remapped to END
0x89, // VK_SEMICOLON, // Scan Code 0x93
0x09, // '9', // Scan Code 0x94
0xFF, // 0, // Scan Code 0x95
0xFF, // 0, // Scan Code 0x96
0xFF, // 0, // Scan Code 0x97
0xFF, // 0, // Scan Code 0x98
0xFF, // 0, // Scan Code 0x99
0xFF, // 0, // Scan Code 0x9A
0xFF, // 0, // Scan Code 0x9B
0xFF, // 0, // Scan Code 0x9C
0xFF, // 0, // Scan Code 0x9D
0xFF, // 0, // Scan Code 0x9E
0xFF, // 0, // Scan Code 0x9F
0x3F, // VK_MULTIPLY, // Scan Code 0xA0 // Bvd Keypad '7' remapped to HOME
0x8E, // VK_APOSTROPHE, // Scan Code 0xA1 // Bvd Keypad '8' remapped to DOWN
0x00, // VK_NUMPAD0, // Scan Code 0xA2 // Bvd Keypad '9' remapped to BACK
0x8A, // VK_COMMA, // Scan Code 0xA3
0x8F, // VK_NUMPAD6, // Scan Code 0xA4
0xFF, // 0, // Scan Code 0xA5
0xFF, // 0, // Scan Code 0xA6
0xFF, // 0, // Scan Code 0xA7
0xFF, // 0, // Scan Code 0xA8
0xFF, // 0, // Scan Code 0xA9
0xFF, // 0, // Scan Code 0xAA
0xFF, // 0, // Scan Code 0xAB
0xFF, // 0, // Scan Code 0xAC
0xFF, // 0, // Scan Code 0xAD
0xFF, // 0, // Scan Code 0xAE
0xFF, // 0, // Scan Code 0xAF
0x8B, // VK_TAB, // Scan Code 0xB0 // Bvd Keypad '*' remapped to TALK
0x8C, // VK_LBRACKET, // Scan Code 0xB1 // Bvd Keypad '0' remapped to HOME
0x31, // VK_BACK, // Scan Code 0xB2 // Bvd Keypad '#' remapped to END
0x8D, // VK_RBRACKET, // Scan Code 0xB3
0x36, // VK_RETURN, // Scan Code 0xB4
0xFF, // 0, // Scan Code 0xB5
0xFF, // 0, // Scan Code 0xB6
0xFF, // 0, // Scan Code 0xB7
0xFF, // 0, // Scan Code 0xB8
0xFF, // 0, // Scan Code 0xB9
0xFF, // 0, // Scan Code 0xBA
0xFF, // 0, // Scan Code 0xBB
0xFF, // 0, // Scan Code 0xBC
0xFF, // 0, // Scan Code 0xBD
0xFF, // 0, // Scan Code 0xBE
0xFF, // 0, // Scan Code 0xBF
}; //XllpScanCodeToWinCeScanCodeTable[] // not BSP_SMARTPHONE
#define MainScanCodeTableFirst 0x00
#define MainScanCodeTableLast 0x4F
#define MAIN_SCAN_CODE_TABLE_SIZE ((MainScanCodeTableLast-MainScanCodeTableFirst)+1)
// No need to pad this table with 0x80 empty entries in the beginning.
// KeyPadPdd_GetEventEx2() knows about this and has adjusted the marker VKs ORred with
// the UNIQUE_KEY_SC_PREPEND_MSK
#define UNIQUE_KEY_SCAN_CODE_TABLE_SIZE ((UNIQUE_KEY_SC_RAW_MAX-UNIQUE_KEY_SC_RAW_MIN)+1)
#define UniqueKeyScanCodeTableFirst (UNIQUE_KEY_SC_PREPEND_MSK)
#define UniqueKeyScanCodeTableLast (UNIQUE_KEY_SC_PREPEND_MSK|UNIQUE_KEY_SCAN_CODE_TABLE_SIZE)
const UINT8 MainScanCodeToVKeyTable[MAIN_SCAN_CODE_TABLE_SIZE] = // not BSP_SMARTPHONE
{
'0' , // 0x00
'1' , // 0x01
'2' , // 0x02
'3' , // 0x03
'4' , // 0x04
'5' , // 0x05
'6' , // 0x06
'7' , // 0x07
'8' , // 0x08
'9' , // 0x09
0 , // 0x0A
0 , // 0x0B
0 , // 0x0C
0 , // 0x0D
0 , // 0x0E
0 , // 0x0F
'A' , // 0x10
'B' , // 0x11
'C' , // 0x12
'D' , // 0x13
'E' , // 0x14
'F' , // 0x15
'G' , // 0x16
'H' , // 0x17
'I' , // 0x18
'J' , // 0x19
'K' , // 0x1A
'L' , // 0x1B
'M' , // 0x1C
'N' , // 0x1D
'O' , // 0x1E
'P' , // 0x1F
'Q' , // 0x20
'R' , // 0x21
'S' , // 0x22
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?