⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scvkengus1.cpp

📁 Windows CE 6.0 BSP for VOIPAC Board (PXA270) Version 2b.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	if (ScanCode == /* 7A VK_F8 */ 0x42 && KeyStateFlags == KeyStateDownFlag)
				ProfileStart(200,8);
	if (ScanCode == /* 7A VK_F9 */ 0x43 && KeyStateFlags == KeyStateDownFlag)
				ProfileStart(200,4);
	if (ScanCode == /* 7A VK_F10 */ 0x44 && KeyStateFlags == KeyStateDownFlag)
				ProfileStart(200,2);
	if (ScanCode == /* 7A VK_F11 */ 0x57 && KeyStateFlags == KeyStateDownFlag)
				ProfileStart(200,0);
	if (ScanCode == /* 7B VK_F12 */ 0x58 && KeyStateFlags == KeyStateDownFlag)
				ProfileStop();
#endif
 //	RETAILMSG(1,(TEXT("ScanCodeToVKeyEx: ui8ScanCode: %08x KeyStateFlags %08x\r\n"), ScanCode, KeyStateFlags));

	if ( ScanCode == 0x45 )
		{
		//	The desktop shows that this is an extended
		//	scan code.  To make it look the same, we
		//	pass back the scan code with a e0 tacked
		//	on to it.
		VKeyBuf[cVKeys] = VK_NUMLOCK;
		ScanCodeBuf[cVKeys] = 0xe045;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		}
	else if ( ScanCode == 0xe01c )
		{
		VKeyBuf[cVKeys] = VK_RETURN;
		ScanCodeBuf[cVKeys] = ScanCode;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		}
	else if ( ScanCode == 0xe01d )
		{
		VKeyBuf[cVKeys] = VK_RCONTROL;
		ScanCodeBuf[cVKeys] = ScanCode;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		}
#if USE_ALT_GR
	//	Turn this on if you need AltGr on a keyboard.
	else if ( ScanCode == 0xe038 )
		{
		VKeyBuf[cVKeys] = VK_RMENU;
		ScanCodeBuf[cVKeys] = ScanCode;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		VKeyBuf[cVKeys] = VK_RCONTROL;
		ScanCodeBuf[cVKeys] = ScanCode;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		}
#endif
	else if ( ScanCode == 0xe11d45 )
		{
		VKeyBuf[cVKeys] = VK_PAUSE;
		ScanCodeBuf[cVKeys] = 0x45;
		KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
		cVKeys++;
		}
	else if ( ( ScanCode >= E0ScanCodeTableFirst ) &&
			  ( ScanCode <= E0ScanCodeTableLast ) )
		{
	//	NKDbgPrintfW(TEXT("Between first and last\r\n"));
		VKeyBuf[cVKeys] = ScanCodeE0ToVKeyTable[ScanCode - E0ScanCodeTableFirst];
		if ( VKeyBuf[cVKeys] )
			{
			ScanCodeBuf[cVKeys] = ScanCode;
			KeyStateFlagsBuf[cVKeys] = KeyStateFlags;
			cVKeys++;
			}
		}
	else if ( ScanCode <= ScanCodeTableLast )
		{
//		NKDbgPrintfW(TEXT("< scan code table last\r\n"));
//	RETAILMSG(1,(TEXT("cVKeys %08x ScanCode %08x KeyStateFlags %08x\r\n"), cVKeys, ScanCode, KeyStateFlags));
		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));
		}
*/

//	RETAILMSG(1,(TEXT("ScanCodeToVKeyEx:  cVKeys: %08x\r\n"),  cVKeys));
	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;
		}

//	NKDbgPrintfW(TEXT("vkey is %x ad scan code is %x \r\r"),vkey,VKeyToScanCodeTable[vkey]);
	return VKeyToScanCodeTable[vkey];
}




⌨️ 快捷键说明

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