现在对话框产生消息,要传递到视图类中去。
一定要经过主框架吗?也就是说视图类和主框架一定要编写这个消息的处理函数吗?3X

解决方案 »

  1.   

    windows消息还是自定义消息?
    一般都是对话框来发送消息 消息的处理函数写在即将发生变化的窗口下
      

  2.   

    要获得什么消息?  想在对话框上编辑信息然后在VIEW中使用?对话框中的EDIT控件??新建一个对话框Dialog类,继承与CDialog();
    在Ondatachang()中写要交换的东西然后可以直接使用
      

  3.   

    自己添加啊 写在框架里也可以 
    给你个例子
    stdafx.h中
    #define UM_RLPSTART         WM_USER + 500你要实现消息响应函数的.cpp中
    BEGIN_MESSAGE_MAP()
    ON_MESSAGE(UM_RLPSTART,OnRlpStart)
    END_MESSAGE_MAP()你要实现消息响应函数的.h中
    afx_msg void OnRlpStart(WPARAM wParam, LPARAM lParam);
    在DECLARE_MESSAGE_MAP()之前你要实现消息响应函数的.cpp中添加实现
    void CXXXXDlg::OnRlpStart(WPARAM wParam, LPARAM lParam)
    {
      ……
    }
      

  4.   

    你只是在消息响应的类中添加了处理函数。我要说的是MFC windows 程序设计8.2节的那个例子,在主框架和视图类中都定义了同一消息的处理函数。为什么要这么做?
      

  5.   

    我想也是的。如果定义一个消息,处理函数要定义两次,也太麻烦了。而且MFC windows 程序设计8.2节的这个例子,主框架中的消息处理函数其实就是把消息转到视图类,没有任何其它具体的处理。
      

  6.   

    你要从对话框传送消息给视图,直接在视图里面写消息映射关系和消息处理函数就可以了,主框架中不需要写处理函数,而且这种情况主框架中一般不能写处理函数,否则主框架中的处理函数返回消息已经处理,视图中的处理函数就调用不到了,这一点在做菜单消息中经常碰到。既然有视图来处理,直接发给视图:
    LRESULT SendMessage(
    HWND hWnd, //视图Handle:CView::m_hWnd,CWnd中继承m_hWnd
    UINT Msg, 
    WPARAM wParam, 
    LPARAM lParam );