“static_cast”: 无法从“LRESULT (__thiscall CMFCmapDoc::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”我这样使用了:在头文件中:
================================
// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()public:  
    
    LRESULT afx_msg OnMyMessage(WPARAM,LPARAM);   
===================================
在CPP文件中:================================================BEGIN_MESSAGE_MAP(CMFCmapDoc, CDocument)
     ON_MESSAGE(WM_MYMESSAGE, &CMFCmapDoc::OnMyMessage)
END_MESSAGE_MAP()LRESULT CMFCmapDoc::OnMyMessage(WPARAM,LPARAM)
{
        ::AfxMessageBox(L"我是DOC,已经收到消息");
}是在CDocument类中,怎么还有错误,望指点

解决方案 »

  1.   

    ON_MESSAGE(WM_MYMESSAGE, OnMyMessage) 
      

  2.   

      LRESULT afx_msg OnMyMessage(WPARAM,LPARAM);  ->  afx_msg  LRESULT OnMyMessage(WPARAM,LPARAM);
      

  3.   

    文档类不能响应除了WM_COMMAND之外的其他消息。
      

  4.   

    不能在文档里响应因为文档从 CCmdTarget 派生,CWnd也从 CCmdTarget 派生,但是 不能直接从 CDocument 转化成 CWnd
      

  5.   

    楼上的,怎么才能在文档里响应这个消息
     
    文档不是可以接收ON_MESSAGE消息吗
      

  6.   

    文档了只能接受WM_COMMAND消息,不能接受自定义消息。
    文档类并不是窗口,之所以能接收COMMAND消息,是因为View类调用了文档类的OnCmdMsg消息处理函数。在文档类相关的视图类去响应自定义消息。
      

  7.   

    文档派生自 CCmdTarget, 只能做 ON_COMMAND 和 ON_UPDATE_COMMAND_UI 的消息映射