我自定义了一个从CCmdTarget继承过来的类CDDD,里面定义了一个消息相应函数LRESULT OnMsg(){AfxMessageBox("msg")};并且做了这个一个映射
BEGIN_MESSAGE_MAP(CDDD, CCmdTarget)
//{{AFX_MSG_MAP(CDDD)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
ON_MESSAGE(WM_USER+10,OnMsg)
END_MESSAGE_MAP()然后在对话框类里添加了一个CDDD ddd,但是为什么在对话框的函数里调用SendMessage(WM_USER+10,0,0)时CDDD的OnMsg()函数没有响应呢,怎么才能解决呢?

解决方案 »

  1.   

    LRESULT CDDD::OnMsg(){AfxMessageBox("msg")};
      

  2.   

    WM_USER+10不是很好,微软推荐至少从WM_USER+100开始自定义消息
    自定义消息的相应函数应该这样写:
    LRESULT OnMsg(WPARAM wParam, LPARAM lParam);
      

  3.   

    LRESULT CDDD::OnMsg(WPARAM wParam, LPARAM lParam){AfxMessageBox("msg")};
      

  4.   

    #define  WM_CHANGE_DATA  (WM_USER + 1100).h
    LRESULT  OnChangeData( WPARAM wParam, LPARAM lParam);.cpp
    ON_MESSAGE( WM_CHANGE_DATA,OnChangeData )LRESULT CXXXXX::OnChangeData( WPARAM wParam, LPARAM lParam )
    {
       AfxMessageBox("ok");
    }
      

  5.   

    我这么定义了
    LRESULT CDDD::OnMsg(WPARAM wParam, LPARAM lParam){AfxMessageBox("msg");return 0L};还是不行,但是在对话框那个类里这么做的话就可以,有没有什么办法可以解决呢?