菜鸟我新建了一个基于对话框的程序,在Dlg类中添加自定义消息,结果错了
我是这样添加的:
在Dlg类的.h文件的类的声明外面添加  #define WM_RECVDATA  WM_USER+100
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnRecvData(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()
在.cpp中添加了:
BEGIN_MESSAGE_MAP(CChatSrvDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_RECVDATA,OnRecvData)
END_MESSAGE_MAP()
结果系统报错了....
大家说该怎么加啊??

解决方案 »

  1.   

    在.cpp里添加void YourClassName::OnRecvData(WPARAM wParam,LPARAM lParam){}
      

  2.   

    消息影射函数我肯定添加了啊
    系统报错如下:
    错误 1 error C2440: “static_cast”: 无法从“void (__thiscall CChatSrvDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” e:\程序\visual c++ studio\chatsrv\chatsrv\chatsrvdlg.cpp 65
      

  3.   

    你是用的VS05吧!将映射表中消息映射函数改为传地址及&OnRecvData试试。
      

  4.   

    ON_MESSAGE宏对应的函数原型应该是
    afx_msg LRESULT memberFxn(WPARAM, LPARAM);你的函数是void型的自然不能匹配
      

  5.   

    我用的是VS2008,在VC++9中给基于对话框的程序的Dlg类添加自定义消息是相同的问题。不过先现在用vocanicy(刺客)的方法已经解决了!