我需要将一个值翻译成它对应的消息宏,比如 0x100 到 WM_KEYDOWN。
是否存在任何开源实现?
除非您的 API 供应商提供了一种方法,否则您将不走运,您将不得不自己做。#
字符串化运算符将帮助您减少输入:
struct macromap
{
int macro,
char *name;
};
#define MAP_ENTRY(macro) { macro, #macro }
struct macromap map[] =
{
MAP_ENTRY(WM_KEYDOWN),
MAP_ENTRY(WM_SOMETHINGELSE),
.
.
.
};
首先,可能我没有正确理解你的问题。
每条消息都已定义为 DWORD 宏,我假设您想要这个:
swith(value)
{
case WM_KEYDOWN:
do what you want
break;
case ...:
....
break;
}