比如建立了两个类:CMyFormView,CView,如何自定义一个消息,在两者之间传递?

解决方案 »

  1.   

    传递消息的话主要是针对窗口的句柄
    这种情况你必须保证传递消息的时候两个类都已经被实例话 就是对应两个类必须有响应的窗口句柄实体存在
    然后可以在类函数中调用全局的SendMessage函数
    LRESULT SendMessage(
      HWND hWnd,      // handle to destination window
      UINT Msg,       // message
      WPARAM wParam,  // first message parameter
      LPARAM lParam   // second message parameter
    );
    (在类中调用要加上域定义符 ::SendMessage 因为view类中已经定义了这个函数 对自己发消息)
    可以直接使用CView->m_hWnd来得到一个HWND类型的句柄结构
      

  2.   

    #define WM_APP_YOURMSG        (WM_APP + 1023)afx_msg LRESULT OnYourMsg(WPARAM wParam, LPARAM lParam);ON_MESSAGE(WM_APP_YOURMSG, OnYourMsg);LRESULT CYourView::OnYourMsg(WPARAM wParam, LPARAM lParam)
    {
    }pYourView->SendMessage(WM_APP_YOURMSG, wParam, lParam);
      

  3.   

    这样可以传给别的类吗?
    pYourView是什么?
      

  4.   

    视图类的基类为CWnd,实际上视图也是一种窗口,因此通过SendMessage发送自己定义的消息
    到指定的窗口,在指定的窗口里接收你所发送的消息就OK了
      

  5.   

    怎么指定。我这样搞了一下:
    CPointView *a=new CPointView;
    ::SendMessage(a->m_hWnd,WM_LIST_REFRESH,0,0); 可是还是不行