LONG CMYDlg:CMYDlg::OnRev(UINT WParam,LONG lParam)
将ON_MESSAGE(UM_SOCK,OnRec)加入到消息隐射表中

解决方案 »

  1.   

    (1)在视图类.cpp中定义消息值: #define WM_MSG    (WM_USER+101)
        (2)首先在AFX_MSG块中加入消息声明:在CMyView.h中,找到如下部分,并加入消息声明:
             protected:        
                // {{AFX_MSG(CMyView)
                ......
                afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);
                file://}}AFX_MSG 
         (3)在MESSAGE_MAP块中添加ON_MESSAGE宏指令:
               BEGIN_MESSAGE_MAP(CMyView, CView) 
                  file://{{AFX_MSG_MAP(CMyView) 
                   .....
                  ON_MESSAGE(WM_MSG, OnMyMsg) 
                 file://}}AFX_MSG_MAP 
               END_MESSAGE_MAP() 
         (4)添加消息函数体:
              LPESULT CMyView::OnMyMsg(WPARAM wParam, LPARAM lParam) 
              { 
                 AfxMessageBox("消息已经收到!"); 
                 return 0; 
              } 
         (5)在主框架中加入测试函数
            void CMainFrame::OnTestMsg()
            {
               CView * pView = GetActiveView();//获取当前视类指针
               if(pView!=NULL) pView->PostMessage(WM_MSG,0,0);
            }
         这里,我们看到了,只要我们有办法获得发送消息的目标类的指针,我们就可以任意的发送消息