创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类      然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?

解决方案 »

  1.   

    如果要获取视图类的指针的话,就不用发消息了,直接改吧:
    用:CXXXView pView=(CXXXView *)((CMainFrame*)AfxGetMainWnd())-> GetActiveView() ;
    然后直接用pView操作视图吧
      

  2.   

    问题补充:
    我的对话框实在主视图中分割窗口在放进去的。对话框是基于CFormView类的,主视图是基于CscrollView类的,而且工程名称是中文“监控”,所以主视图的view类是CMyView,怎么解决 谢谢
      

  3.   


    该怎么访问视图类
    如果增加 #include “监控View。h”的话,出现错误:
    e:\vc++\我的毕设\监控view.h(30) : error C2143: syntax error : missing ';' before '*',
    双击错误指向了 CMyDoc* GetDocument();怎么办?
      

  4.   

    CView* pView = (CView*)m_ImageSplitter.GetPane(0, 0);只能通过主框架来访问。比如上面的用法。
      

  5.   

    目前编译器还不支持unicode.文件名字最好用英文。 
      

  6.   

    void CDisplayView::OnChangeNnum() 
    {
    // TODO: If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CFormView::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.

    // TODO: Add your control notification handler code here UpdateData(TRUE);
    CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;       //得到指向指定视图(对话框)的指针
    CMyView *pMyView=(CMyView *)pFrame->m_splitter.GetPane(0,1);   // 指针指向第一行第0列的对话框
    pMyView->UpdatenNum(m_nNum);
    // CMyView *pView;                    //为什么这样就出错
    // pView->UpdatenNum(m_nNum);
    }问题解决,但是还有个问题   为什么用第一种方式正确,用第二种方法就不行呢?运行时提示内存不能为written?
      

  7.   

    因为CMyView 是框架分割出来的,存在的。
    // CMyView *pView; //为什么这样就出错
    // pView->UpdatenNum(m_nNum);这个是个空指针,对空指针进行操作,结果是可知的,就是crash.呵呵。