将消息值转换为宏?

时间:2013-05-06 05:02:20

标签: c windows winapi

我需要将一个值转换为相应的消息宏,例如0x100到WM_KEYDOWN。

是否存在此开源实现?

2 个答案:

答案 0 :(得分: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),
    .
    .
    .
};

答案 1 :(得分:0)

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

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

swith(value)
{
 case WM_KEYDOWN:
   do what you want
   break;
 case ...:
   ....
   break;
}