注册 登录
编程论坛 VC++/MFC

VS2003 移植VS2008出现了异常,各位高人谁来帮我解下这个谜题!

xingbarking 发布于 2012-03-09 15:16, 481 次点击
最近闲来没事做了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”创建指向成员的指针
请高人求解!
0 回复
1