我做了个单文档formview (类CAU2VIEW)然后又添加了个dialog窗口(类CAUOE) ,现在我在fromview中 定义了个dialog类型的指针变量 CAUOE * pauoe;,然后访问formview 的m_list1成员变量。在m_list双击事件中把list中的值传给dialog中的m_edit控件。  代码void CAU2View::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
   //----鼠标双击事件list1
CString strname,str2,str3,str4;
     for(id=0;id<m_list1.GetItemCount();id++)
 {
   if(m_list1.GetItemState(id,LVIS_SELECTED)==LVIS_SELECTED)
{ CAUOE m_auoe;
pauoe=&(m_auoe); strname=m_list1.GetItemText(id,0);
str2=m_list1.GetItemText(id,1);
str3=m_list1.GetItemText(id,2);
str4=m_list1.GetItemText(id,3); //---把值传给 子窗口中的相应控件中
pauoe->m_edit1=strname;
pauoe->m_edit2=str2;
pauoe->m_edit3=str3;
pauoe->m_edit4=str4; m_auoe.DoModal(); } }

*pResult = 0;
}
然后运行的时候都正常 
但是在往下些程序  就提示error C2143: syntax error : missing ';' before '*'
d:\pb程序备份\pb乱摊子\vc\au\au2\au2view.h(33) : error C2501: 'CAU2Doc' : missing storage-class or type specifiers
d:\pb程序备份\pb乱摊子\vc\au\au2\au2view.h(33) : error C2501: 'GetDocument' : missing storage-class or type specifiers
d:\pb程序备份\pb乱摊子\vc\au\au2\au2view.h(56) : error C2143: syntax error : missing ';' before '*'
d:\pb程序备份\pb乱摊子\vc\au\au2\au2view.h(56) : error C2501: 'CAUOE' : missing storage-class or type specifiers
d:\pb程序备份\pb乱摊子\vc\au\au2\au2view.h(56) : error C2501: 'pauoe' : missing storage-class or type specifiers指向CAU2VIEW头文件中的 
public:
CAU2Doc * GetDocument();
   CAUOE * pauoe;然后我注视掉之后 在打开  就又没有错了  ,接着写 又是这样的错误 ,郁闷无比 大侠们 指点一下 哪里出错了啊

解决方案 »

  1.   

    头文件加了吗?我的习惯用法#include "Cxx.h"CxxDLG dlg;
    dlg.m_edit1=strname;你试下。看还会不会出问题。
      

  2.   

    应该是没加头文件的缘故#include "Cxx.h"
      

  3.   

    view类的h头文件上写上
    class CAU2Doc;
      

  4.   

    VisualElevenview类的h头文件上写上
    class CAU2Doc;这是什么意思 我试过了  不行
     
      

  5.   

    我用hxyzby说的方法 很快就解决了  ,但是如果我想dialog 类访问FOrmview类中的list控件  修改其中的值,该怎么做啊 CAU2View m_au2;
    m_au2.m_list1.SetItemText(0,1,"sss"); 但是报错  这接就Debug Assertion Failed! 终止  重试  忽略了 怎么解决啊 
      

  6.   


    CAU2View m_au2; 这样定义是获取View的大忌,因为主框架的View已经实例化初始化完成了,使用以下代码获取:CMainFrame *wndFrm = (CMainFrame *)AfxGetMainWnd();
    CAU2View *m_au2 = (CAU2View *)wndFrm->GetActiveView();
      

  7.   

    楼上说得不对啊,CAU2View m_au2; 这样定义不是大忌,而是这里新定义了一个CAU2View的对象,根本就不是框架中的View,对m_au2这个对象的任何操作都是浮云啊,楼主多看看C++基础吧。
      

  8.   

    qfc8513 说的方法我用过了 确实好用 ,lfm13720说的也对 ,确实没有真正指向view,调用都是无效的。然后我用全局指针指向了view  ,也好用了  ,多谢大家了。
      

  9.   

    呵呵,不是说定义是大忌,是说这样定义获取客户区View是大忌!