#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);
}
}