#define STYLEITEM(item) { _T(#item), item
}
static STYLEMAPVALUE map[]=
{
STYLEITEM(WS_OVERLAPPED),
STYLEITEM(WS_POPUP),
STYLEITEM(WS_CHILD)
}
在预编译的时候,#将item做为了字符串,然后{}中的值item作为了值
eg:通过ID值获取到对应的宏定义源码字符串
#define STR(x) #x
struct SCT_STR_ID
{
CString strIdName;
DWORD dwIDValue;
};
void OnBnClickedOk()
{
SCT_STR_ID sct={_T(STR(IDOK)), IDOK};
if (sct.dwIDValue == IDOK)
{
AfxMessageBox(sct.strIdName);
}
}
本文介绍了在C/C++中如何使用宏定义实现特定的功能,例如将标识符转换为字符串,并展示了如何创建映射表来管理和操作窗口样式。此外,还提供了一个具体的例子,演示了如何通过宏定义获取ID值对应的宏定义源码字符串。
1万+

被折叠的 条评论
为什么被折叠?



