#define  WM_MYPROCESS WM_USER+200
ON_MESSAGE(WM_MYPROCESS,OnMyProgress)
afx_msg void OnMyProgress();
这些一切都是像平常一样,可是编译却出错:
error C2440: 'type cast' : cannot convert from 'void (__thiscall CMainFrame::*)(void)' to 'long (__thiscall CWnd::*)(unsigned int,long)'
        Pointers to members have different representations; cannot cast between them究竟是什么问题呢??

解决方案 »

  1.   

    自定义消息的函数原型好像应该是
    afx_msg LRESULT OnMyProgress(WPARAM wParam, LPARAM lParam);

      

  2.   

    恩,是
    afx_msg LRESULT OnMyProgress(WPARAM wParam, LPARAM lParam);
      

  3.   

    自定义的ON_MESSAGE(WM_MYPROCESS,OnMyProgress)要放在//}}AFX_MSG_MAP外面
    定义afx_msg void OnMyProgress();放在//}}AFX_MSG后面,然后别忘了有函数体。我定义自己的消息都是这样处理的,是可以的
      

  4.   

    我的定义和实现都是按照大家所说的,编译出错:
    error C2440: 'type cast' : cannot convert from 'void (__thiscall CMainFrame::*)(void)' to 'long (__thiscall CWnd::*)(unsigned int,long)'
            Pointers to members have different representations; cannot cast between them我又试着新建一个工程,把该消息抽取出来,这样编译就一点问题都没有,所以就郁闷了,不知道是什么原因。
      

  5.   

    afx_msg LRESULT OnMyProgress(WPARAM wParam, LPARAM lParam);应该有参数呀。
      

  6.   

    把消息函数反回类型改为:
    LRESULT