scvkengus1.cpp

来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· C++ 代码 · 共 631 行 · 第 1/2 页

CPP
631
字号
        VKeyBuf[cVKeys] = ScanCodeToVKeyTable[ScanCode];

        if (VKeyBuf[cVKeys])
        {
            ScanCodeBuf[cVKeys] = ScanCode;
            KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
            cVKeys++;
        }
    }

    /*
     * For some reason, the print screen key has an extra 0xe02a scan code
     * in it.  It doesn't do anything so we won't complain about it.
     */
    if ((cVKeys == 0) &&
        (ScanCode != 0xe02a))
    {
        RETAILMSG(1,(TEXT("Unknown scan code %x\r\n"), ScanCode));
    }

    return cVKeys;
}

static const UINT16 VKeyToScanCodeTable[COUNT_VKEYS] =
{
    /* 00 */                    0,
    /* 01 VK_LBUTTON */         0,
    /* 02 VK_RBUTTON */         0,
    /* 03 VK_CANCEL */          0,
    /* 04 VK_MBUTTON */         0,
    /* 05 */                    0,
    /* 06 */                    0,
    /* 07 */                    0,
    /* 08 VK_BACK */            0x0e,
    /* 09 VK_TAB */             0x0f,
    /* 0A */                    0,
    /* 0B */                    0,
    /* 0C VK_CLEAR */           0x4c,
    /* 0D VK_RETURN */          0x1c,
    /* 0E */                    0,
    /* 0F */                    0,

    /* 10 VK_SHIFT */           0x2a,
    /* 11 VK_CONTROL */         0x1d,
    /* 12 VK_MENU */            0x38,
    /* 13 VK_PAUSE */           0,
    /* 14 VK_CAPITAL */         0x3a,
    /* 15 */                    0,
    /* 16 */                    0,
    /* 17 */                    0,
    /* 18 */                    0,
    /* 19 */                    0,
    /* 1A */                    0,
    /* 1B VK_ESCAPE */          0x01,
    /* 1C */                    0,
    /* 1D */                    0,
    /* 1E */                    0,
    /* 1F */                    0,

    /* 20 VK_SPACE */           0x39,
    /* 21 VK_PRIOR */           0xe049,
    /* 22 VK_NEXT */            0xe051,
    /* 23 VK_END */             0xe04f,
    /* 24 VK_HOME */            0xe047,
    /* 25 VK_LEFT */            0xe04b,
    /* 26 VK_UP */              0xe048,
    /* 27 VK_RIGHT */           0xe04d,
    /* 28 VK_DOWN */            0xe050,
    /* 29 VK_SELECT */          0,
    /* 2A VK_PRINT */           0,
    /* 2B VK_EXECUTE */         0,
    /* 2C VK_SNAPSHOT */        0x54,
    /* 2D VK_INSERT */          0xe052,
    /* 2E VK_DELETE */          0xe053,
    /* 2F VK_HELP */            0,

    /* 30 */                    0x0b,
    /* 31 */                    0x02,
    /* 32 */                    0x03,
    /* 33 */                    0x04,
    /* 34 */                    0x05,
    /* 35 */                    0x06,
    /* 36 */                    0x07,
    /* 37 */                    0x08,
    /* 38 */                    0x09,
    /* 39 */                    0x0a,
    /* 3A */                    0,
    /* 3B */                    0,
    /* 3C */                    0,
    /* 3D */                    0,
    /* 3E */                    0,
    /* 3F */                    0,

    /* 40 */                    0,
    /* 41 */                    0x1e,
    /* 42 */                    0x30,
    /* 43 */                    0x2e,
    /* 44 */                    0x20,
    /* 45 */                    0x12,
    /* 46 */                    0x21,
    /* 47 */                    0x22,
    /* 48 */                    0x23,
    /* 49 */                    0x17,
    /* 4A */                    0x24,
    /* 4B */                    0x25,
    /* 4C */                    0x26,
    /* 4D */                    0x32,
    /* 4E */                    0x31,
    /* 4F */                    0x18,

    /* 50 */                    0x19,
    /* 51 */                    0x10,
    /* 52 */                    0x13,
    /* 53 */                    0x1f,
    /* 54 */                    0x14,
    /* 55 */                    0x16,
    /* 56 */                    0x2f,
    /* 57 */                    0x11,
    /* 58 */                    0x2d,
    /* 59 */                    0x15,
    /* 5A */                    0x2c,
    /* 5B VK_LWIN */            0x5b,
    /* 5C VK_RWIN */            0x5c,
    /* 5D VK_APPS */            0x5d,
    /* 5E */                    0,
    /* 5F */                    0,

    /* 60 VK_NUMPAD0 */         0x52,
    /* 61 VK_NUMPAD1 */         0x4f,
    /* 62 VK_NUMPAD2 */         0x50,
    /* 63 VK_NUMPAD3 */         0x51,
    /* 64 VK_NUMPAD4 */         0x4b,
    /* 65 VK_NUMPAD5 */         0x4c,
    /* 66 VK_NUMPAD6 */         0x4d,
    /* 67 VK_NUMPAD7 */         0x47,
    /* 68 VK_NUMPAD8 */         0x48,
    /* 69 VK_NUMPAD9 */         0x49,
    /* 6A VK_MULTIPLY */        0xe037,
    /* 6B VK_ADD */             0x4e,
    /* 6C VK_SEPARATOR */       0,
    /* 6D VK_SUBTRACT */        0x4a,
    /* 6E VK_DECIMAL */         0x53,
    /* 6F VK_DIVIDE */          0xe035,

    /* 70 VK_F1 */              0x3b,
    /* 71 VK_F2 */              0x3c,
    /* 72 VK_F3 */              0x3d,
    /* 73 VK_F4 */              0x3e,
    /* 74 VK_F5 */              0x3f,
    /* 75 VK_F6 */              0x40,
    /* 76 VK_F7 */              0x41,
    /* 77 VK_F8 */              0x42,
    /* 78 VK_F9 */              0x43,
    /* 79 VK_F10 */             0x44,
    /* 7A VK_F11 */             0x57,
    /* 7B VK_F12 */             0x58,
    /* 7C VK_F13 */             0x64,
    /* 7D VK_F14 */             0x65,
    /* 7E VK_F15 */             0x66,
    /* 7F VK_F16 */             0x67,

    /* 80 VK_F17 */             0x68,
    /* 81 VK_F18 */             0x69,
    /* 82 VK_F19 */             0x6a,
    /* 83 VK_F20 */             0x6b,
    /* 84 VK_F21 */             0x6c,
    /* 85 VK_F22 */             0x6d,
    /* 86 VK_F23 */             0x6e,
    /* 87 VK_F24 */             0x76,
    /* 88 */                    0,
    /* 89 */                    0,
    /* 8A */                    0,
    /* 8B */                    0,
    /* 8C */                    0,
    /* 8D */                    0,
    /* 8E */                    0,
    /* 8F */                    0,

    /* 90 VK_NUMLOCK */         0xe045,
    /* 91 VK_SCROLL */          0x46,
    /* 92 */                    0,
    /* 93 */                    0,
    /* 94 */                    0,
    /* 95 */                    0,
    /* 96 */                    0,
    /* 97 */                    0,
    /* 98 */                    0,
    /* 99 */                    0,
    /* 9A */                    0,
    /* 9B */                    0,
    /* 9C */                    0,
    /* 9D */                    0,
    /* 9E */                    0,
    /* 9F */                    0,

    /* A0 VK_LSHIFT */          0x2a,
    /* A1 VK_RSHIFT */          0x36,
    /* A2 VK_LCONTROL */        0x1d,
    /* A3 VK_RCONTROL */        0xe01d,
    /* A4 VK_LMENU */           0x38,
    /* A5 VK_RMENU */           0xe038,
    /* A6 */                    0,
    /* A7 */                    0,
    /* A8 */                    0,
    /* A9 */                    0,
    /* AA */                    0,
    /* AB */                    0,
    /* AC */                    0,
    /* AD */                    0,
    /* AE */                    0,
    /* AF */                    0,

    /* B0 */                    0,
    /* B1 */                    0,
    /* B2 */                    0,
    /* B3 */                    0,
    /* B4 */                    0,
    /* B5 */                    0,
    /* B6 */                    0,
    /* B7 */                    0,
    /* B8 */                    0,
    /* B9 */                    0,
    /* BA VK_SEMICOLON */       0x27,
    /* BB VK_EQUAL */           0x0d,
    /* BC VK_COMMA */           0x33,
    /* BD VK_HYPHEN */          0x0c,
    /* BE VK_PERIOD */          0x34,
    /* BF VK_SLASH */           0x35,

    /* C0 VK_BACKQUOTE */       0x29,
    /* C1 */                    0,
    /* C2 */                    0,
    /* C3 */                    0,
    /* C4 */                    0,
    /* C5 */                    0,
    /* C6 */                    0,
    /* C7 */                    0,
    /* C8 */                    0,
    /* C9 */                    0,
    /* CA */                    0,
    /* CB */                    0,
    /* CC */                    0,
    /* CD */                    0,
    /* CE */                    0,
    /* CF */                    0,

    /* D0 */                    0,
    /* D1 */                    0,
    /* D2 */                    0,
    /* D3 */                    0,
    /* D4 */                    0,
    /* D5 */                    0,
    /* D6 */                    0,
    /* D7 */                    0,
    /* D8 */                    0,
    /* D9 */                    0,
    /* DA */                    0,
    /* DB VK_LBRACKET */        0x1a,
    /* DC VK_BACKSLASH */       0x2b,
    /* DD VK_RBRACKET */        0x1b,
    /* DE VK_APOSTROPHE */      0x28,
    /* DF VK_OFF */             0,

    /* E0 */                    0,
    /* E1 */                    0,
    /* E2 */                    0,
    /* E3 */                    0,
    /* E4 */                    0,
    /* E5 */                    0,
    /* E6 */                    0,
    /* E7 */                    0,
    /* E8 */                    0,
    /* E9 */                    0,
    /* EA */                    0,
    /* EB */                    0,
    /* EC */                    0,
    /* ED */                    0,
    /* EE */                    0,
    /* EF */                    0,

    /* F0 */                    0,
    /* F1 */                    0,
    /* F2 */                    0,
    /* F3 */                    0,
    /* F4 */                    0,
    /* F5 */                    0,
    /* F6 */                    0,
    /* F7 */                    0,
    /* F8 */                    0,
    /* F9 */                    0,
    /* FA */                    0,
    /* FB */                    0,
    /* FC */                    0,
    /* FD */                    0,
    /* FE */                    0,
    /* FF */                    0
};

/*
 *
 * Maps a virtual key to a scan code.  The LR specific virtual keys are
 * mapped to LR specific scan codes.
 */
UINT32 VKeyToScanCode(UINT32 vkey)
{
    if (vkey >= COUNT_VKEYS)
    {
        return 0;
    }

    return VKeyToScanCodeTable[vkey];
}

/* EOF scvkengus1.cpp */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?