最后30分了我用静态拆分单文档成左右2个区域A,B(并且固定拆分条),A是显示语句. 我现在想实现的是  左击A的一条语句就能在B里相应的出现该语句的相关信息。(点不同的语句B出现不同的对应信息) 如何实现消息的传递呢。补充一下 
左边  类 LeftView  ,对话框类为 ListDlg  对话框ID  
右边  类 RightUpView,对话框类为 SoundView 对话框ID 消息是 在拆分的类里传递 还是在 对话框类里传递?怎么传递,头大啊

解决方案 »

  1.   

    获取句柄,发送消息!!
    SendMessage()
      

  2.   


     已经定义了一个自定义消息 WM_CWMK_RELOADNET
      

  3.   

    好久没有弄MFC了。我记得View之间的交互有很多方法的,但是关键是要获得对方View的HWND或者对象。这个应该可以从MainFrame或者Doc里面取得的。
      

  4.   

    有两种方法:
    一种是发消息,你既然定义了消息,那么通过sendmessage发送,然后,在另外一个view里面做一个响应这个消息的函数,关联起来即可!
    另外一种是直接在对方里面保存各自view的指针,直接调用!
      

  5.   


    在另外一个view里面做一个响应这个消息的函数,关联起来即可!
      这一步我不会做。
      

  6.   

    MainFrm.h
    ListDlg * m_pButtView;
    SoundView * m_pClientView;
    MainFrm.cpp
    在你拆分窗口的后面m_ListDlg = (ListDlg *) m_ChildWnd.GetPane(0,0);
    m_SoundView = (SoundView *) m_ChildWnd.GetPane(1,0);
    在ListDlg类中
    CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    SoundView * Cactive = pMF->m_m_SoundView;Cactive->PostMessage
      

  7.   

    试下这样行不行::PostMessage(
    AView->GetSafeHwnd(), WM_MESSAGE,
    BView->GetSafeHwnd(), Pos );
      

  8.   

    fangchao918628  仁兄 
    //消息转发给右侧上部窗口
    m_VSplitterWnd.GetPane(0, 0)->PostMessageW(WM_CWMK_RELOADNET, wParam, lParam);
    //消息转发给右侧下部窗口
    m_VSplitterWnd.GetPane(1, 0)->PostMessageW(WM_CWMK_RELOADNET, wParam, lParam); 这是自定义消息的代码,我的工程里。
      

  9.   

    ON_MESSAGE(WM_CWMK_RELOADNET,messagefun)
    在头文件中,加messagefun的定义
      

  10.   

    都发给主窗口不就得了,主窗口类中保存了各个view类的指针
      

  11.   

    百度找的自定义消息http://hi.baidu.com/couragedl/blog/item/4282471064182104203f2e36.html
      

  12.   

    我主要是不清楚消息是怎么传递的 ,哥几个随便写个简单的 DIALOG或者EDIT之间传送和接受消息的简单例子,我可能就能了解了。
      

  13.   

    我一般是这样实现的:
    1、由视类(或对话框)发送消息
    2、在mainframe中实现对消息的响应
    3、在mainframe中获得视类指针来调用其成员函数或者调用updateallviews函数使目标视类发生相应变化。怎么添加自定义消息响应就不用说了吧。