0

我需要将一个值翻译成它对应的消息宏,比如 0x100 到 WM_KEYDOWN。

是否存在任何开源实现?

4

2 回答 2

3

除非您的 API 供应商提供了一种方法,否则您将不走运,您将不得不自己做。#字符串化运算符将帮助您减少输入:

struct macromap
{
    int macro,
    char *name;
};

#define MAP_ENTRY(macro)  { macro, #macro }

struct macromap map[] = 
{
  MAP_ENTRY(WM_KEYDOWN),
  MAP_ENTRY(WM_SOMETHINGELSE),
    .
    .
    .
};
于 2013-05-06T05:20:42.000 回答
0

首先,可能我没有正确理解你的问题。

每条消息都已定义为 DWORD 宏,我假设您想要这个:

swith(value)
{
 case WM_KEYDOWN:
   do what you want
   break;
 case ...:
   ....
   break;
}
于 2013-05-06T05:29:24.827 回答