问题描述
在VC6.0中:#defineDECLARE_MESSAGE_MAP()private:staticconstAFX_MSGMAP_ENTRY_messageEntries[];protected:staticAFX_DATAconstAFX_MSGMAPmessageMap;staticconstAFX_MSGMAP*PASCAL_GetBaseMessageMap();virtualconstAFX_MSGMAP*GetMessageMap()const;可在VS2010:#defineDECLARE_MESSAGE_MAP()protected:staticconstAFX_MSGMAP*PASCALGetThisMessageMap();virtualconstAFX_MSGMAP*GetMessageMap()const;两者之间的宏定义变化了,我在移植到VS2010时,需要用到messageMap和_messageEntries[],该怎么调用呢大家帮帮忙吧。。。。
解决方案
解决方案二:
1.继承自CCmdTarget父类的子类都有GetMessageMap()函数,可以返回messageMap例如:constAFX_MSGMAP*pMessageMap=GetMessageMap();2.VS2010中AFX_MSGMAP结构体定义如下structAFX_MSGMAP{constAFX_MSGMAP*(PASCAL*pfnGetBaseMap)();constAFX_MSGMAP_ENTRY*lpEntries;};所以要取_messageEntries[],只要用pMessageMap->lpEntries就好。
时间: 2024-11-05 14:44:50