在运行时,知道宏定义(字符串)所代表的值(运行时,知道变量名称的一种方法)

#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++)