VS2003 移植VS2008出现了异常,各位高人谁来帮我解下这个谜题!
最近闲来没事做了MFC窗体程序,因为牵涉到太多按钮触发,所以就用了数组管理这些类似相同的按钮触 发,原本在2003上用起来没有问题,想熟悉VS2008,所以进行了移植出现了问题,编译无法通过,这里进
行请教:
首先:
MyPraListDlg.h 编码如下
#define BTN_MAX 30
#define BTN_MSG_MAP_ENTRY( BTNID, FUNC ) afx_msg void FUNC();
class CMyPraListDlg : public CDialog
{
public:
...
//类似的消息映射
#include "BtnMsgMap.h"
typedef void (CMyPraListDlg::*MessageProc)();
MessageProc btnMsgMaps[BTN_MAX];
void registerMsgMap();
...
}
MyPraListDlg.cpp 编码如下
void CMyPraListDlg::registerMsgMap()
{
#undef BTN_MSG_MAP_ENTRY
#define BTN_MSG_MAP_ENTRY( BTNID, FUNC ) btnMsgMaps[BTNID] = (CMyPraListDlg::MessageProc)
(FUNC);
#include "BtnMsgMap.h"
}
BtnMsgMap.h 编码如下
BTN_MSG_MAP_ENTRY( IDC_CNCBTNLIST1, CNCBtnClick1)
BtnMsgMap.cpp 编码如下
#undef BTN_MSG_MAP_ENTRY
#define BTN_MSG_MAP_ENTRY( BTNID, FUNC ) void CMyPraListDlg::FUNC()
BTN_MSG_MAP_ENTRY( IDC_CNCBTNLIST1, CNCBtnClick1)
{
int id = this->GetDlgCtrlID();
}
具体就这几个流程
在VS2003通过,可是在VS2008编译就出现了错误,提示:
error C3867: “CMyPraListDlg::CNCBtnClick1”: 函数调用缺少参数列表;请使用
“&CMyPraListDlg::CNCBtnClick1”创建指向成员的指针
请高人求解!