游戏快捷键文本生成函数

游戏中设置界面常用的快捷键文本生成函数,比如“Ctrl + Z”,“Shift + C”


/************************************************************************/

const char *g_VKeyText[] = 
{
	"",				//0
	"LBUTTON",		//#define VK_LBUTTON        0x01
	"RBUTTON",		//#define VK_RBUTTON        0x02
	"CANCEL",		//#define VK_CANCEL         0x03
	"MBUTTON",		//#define VK_MBUTTON        0x04    /* NOT contiguous with L & RBUTTON */
	"XBUTTON1",		//#define VK_XBUTTON1       0x05    /* NOT contiguous with L & RBUTTON */
	"XBUTTON2",		//#define VK_XBUTTON2       0x06    /* NOT contiguous with L & RBUTTON */
	"",				//						  * 0x07 : unassigned		
	"BackSpace",	//#define VK_BACK           0x08
	"Tab",			//#define VK_TAB            0x09
	"",				// * 0x0A - 0x0B : reserved
	"",				// * 0x0A - 0x0B : reserved
	"CLEAR",		//#define VK_CLEAR          0x0C
	"RETURN",		//#define VK_RETURN         0x0D
	"",				//							0x0E
	"",				//							0x0F
	"SHIFT",		//#define VK_SHIFT          0x10
	"CONTROL",		//#define VK_CONTROL        0x11
	"MENU",			//#define VK_MENU           0x12
	"PAUSE",		//#define VK_PAUSE          0x13
	"CAPITAL",		//#define VK_CAPITAL        0x14
	"KANA",			//#define VK_KANA           0x15
	"",				//							0x16
	"JUNJA",		//#define VK_JUNJA          0x17
	"FINAL",		//#define VK_FINAL          0x18
	"HANJA",		//#define VK_HANJA          0x19
	"",				//							0x1A
	"ESCAPE",		//#define VK_ESCAPE         0x1B
	"CONVERT",		//#define VK_CONVERT        0x1C
	"NONCONVERT",	//#define VK_NONCONVERT     0x1D
	"ACCEPT",		//#define VK_ACCEPT         0x1E
	"MODECHANGE",	//#define VK_MODECHANGE     0x1F
	"SPACE",		//#define VK_SPACE          0x20
	"PRIOR",		//#define VK_PRIOR          0x21
	"NEXT",			//#define VK_NEXT           0x22
	"END",			//#define VK_END            0x23
	"HOME",			//#define VK_HOME           0x24
	"LEFT",			//#define VK_LEFT           0x25
	"UP",			//#define VK_UP             0x26
	"RIGHT",		//#define VK_RIGHT          0x27
	"DOWN",			//#define VK_DOWN           0x28
	"SELECT",		//#define VK_SELECT         0x29
	"PRINT",		//#define VK_PRINT          0x2A
	"EXECUTE",		//#define VK_EXECUTE        0x2B
	"SNAPSHOT",		//#define VK_SNAPSHOT       0x2C
	"INSERT",		//#define VK_INSERT         0x2D
	"DELETE",		//#define VK_DELETE         0x2E
	"HELP",			//#define VK_HELP           0x2F
	"0",			// * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
	"1",			//							0x31
	"2",			//							0x32
	"3",			//							0x33
	"4",			//							0x34
	"5",			//							0x35
	"6",			//							0x36
	"7",			//							0x37
	"8",			//							0x38
	"9",			//							0x39
	"",				//							0x3A
	"",				//							0x3B
	"",				//							0x3C
	"",				//							0x3D
	"",				//							0x3E
	"",				//							0x3F
	"",				//						  * 0x40 : unassigned
	"A",			// * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
	"B",			//							0x42
	"C",			//							0x43
	"D",			//							0x44
	"E",			//							0x45
	"F",			//							0x46
	"G",			//							0x47
	"H",			//							0x48
	"I",			//							0x49
	"J",			//							0x4A
	"K",			//							0x4B
	"L",			//							0x4C
	"M",			//							0x4D
	"N",			//							0x4E
	"O",			//							0x4F
	"P",			//							0x50
	"Q",			//							0x51
	"R",			//							0x52
	"S",			//							0x53
	"T",			//							0x54
	"U",			//							0x55
	"V",			//							0x56
	"W",			//							0x57
	"X",			//							0x58
	"Y",			//							0x59
	"Z",			//							0x5A
	"LWIN",			//#define VK_LWIN           0x5B
	"RWIN",			//#define VK_RWIN           0x5C
	"APPS",			//#define VK_APPS           0x5D
	"",				//						  * 0x5E : reserved
	"SLEEP",		//#define VK_SLEEP          0x5F
	"NUMPAD0",		//#define VK_NUMPAD0        0x60
	"NUMPAD1",		//#define VK_NUMPAD1        0x61
	"NUMPAD2",		//#define VK_NUMPAD2        0x62
	"NUMPAD3",		//#define VK_NUMPAD3        0x63
	"NUMPAD4",		//#define VK_NUMPAD4        0x64
	"NUMPAD5",		//#define VK_NUMPAD5        0x65
	"NUMPAD6",		//#define VK_NUMPAD6        0x66
	"NUMPAD7",		//#define VK_NUMPAD7        0x67
	"NUMPAD8",		//#define VK_NUMPAD8        0x68
	"NUMPAD9",		//#define VK_NUMPAD9        0x69
	"MULTIPLY",		//#define VK_MULTIPLY       0x6A
	"ADD",			//#define VK_ADD            0x6B
	"SEPARATOR",	//#define VK_SEPARATOR      0x6C
	"SUBTRACT",		//#define VK_SUBTRACT       0x6D
	"DECIMAL",		//#define VK_DECIMAL        0x6E
	"DIVIDE",		//#define VK_DIVIDE         0x6F
	"F1",			//#define VK_F1             0x70
	"F2",			//#define VK_F2             0x71
	"F3",			//#define VK_F3             0x72
	"F4",			//#define VK_F4             0x73
	"F5",			//#define VK_F5             0x74
	"F6",			//#define VK_F6             0x75
	"F7",			//#define VK_F7             0x76
	"F8",			//#define VK_F8             0x77
	"F9",			//#define VK_F9             0x78
	"F10",			//#define VK_F10            0x79
	"F11",			//#define VK_F11            0x7A
	"F12",			//#define VK_F12            0x7B
	"F13",			//#define VK_F13            0x7C
	"F14",			//#define VK_F14            0x7D
	"F15",			//#define VK_F15            0x7E
	"F16",			//#define VK_F16            0x7F
	"F17",			//#define VK_F17            0x80
	"F18",			//#define VK_F18            0x81
	"F19",			//#define VK_F19            0x82
	"F20",			//#define VK_F20            0x83
	"F21",			//#define VK_F21            0x84
	"F22",			//#define VK_F22            0x85
	"F23",			//#define VK_F23            0x86
	"F24",			//#define VK_F24            0x87
	"",				//						  * 0x88 - 0x8F : unassigned
	"",				//							0x89
	"",				//							0x8A
	"",				//							0x8B
	"",				//							0x8C
	"",				//							0x8D
	"",				//							0x8E
	"",				//							0x8F
	"NUMLOCK",		//#define VK_NUMLOCK        0x90
	"SCROLL",		//#define VK_SCROLL         0x91
};

/*
 * fsModifiers,组合键
 * virtualKey, 虚拟键
 * pText,      输出文本
 */
LPSTR	MakeHotKeyText(unsigned int __in fsModifiers, unsigned int __in vk, LPSTR __out pText)
{
	pText[0] = '\0';
	if (fsModifiers & MOD_CONTROL)
	{
            strcat(pText, "Ctrl + ");
	}
	if (fsModifiers & MOD_SHIFT)
	{
            strcat(pText, "Shift + ");
	}
	if (fsModifiers & MOD_ALT)
	{
            strcat(pText, "Alt + ");
	}
	if (fsModifiers & MOD_WIN)
	{
            strcat(pText, "Win + ");
	}

	if (vk < _countof(g_VKeyText) )
            strcat(pText, g_VKeyText[vk]);
	else
            pText[0] = '\0';


	return	pText;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值