我写了一个SDI,想用MFC自动生成的菜单:文件->保存 生成一个.dat文件保存MainFrame的一系列成员变量,应该怎么做呢?
我在手动添加的onfilesave里写代码:
CFile file("input.dat",CFile::modeCreate | CFile::modeWrite);
        file.Write("test",strlen("test"));
file.Close();
没用啊!能生成文件,就是不能写入。
如果不行,就只有再添加一个自己的子菜单或菜单项然后写代码了,不想这样啊!
谢谢了!

解决方案 »

  1.   

    可以写入啊 在View里响应菜单消息
    void CFormViewView::OnFileSave()在你的代码后面加上
    file.Flush();
    file.Close();
    就可以了
      

  2.   

    就是在资源里右键clsaswizard,在mainframe类对菜单项ID_FILE_SAVE添加Command响应onfilesave(),在onfilesave里我没有写弹出保存对话框的代码,但点击File->Save时仍会弹出保存对话框,就是说响应的不是我的函数而是MFC自动生成的函数。
    如何才能响应我自己的函数呢?
    因为我要保存mainframe类的成员变量,我想直接在mainframe里响应而不在view类响应,这样就可以少一次getparent()。而且理论上在view类可以响应的话在mainframe类也能响应啊
      

  3.   

    可能我没说清楚,把问题重新整理了一下:我写了一个SDI,想用MFC自动生成的菜单:文件->保存 生成一个.dat文件保存MainFrame的一系列成员变量,应该怎么做呢?点击MFC自动生成的菜单:文件->保存,会弹出一个文件保存对话框,但要怎样保存自己的数据呢?
      

  4.   

    文件的序列化,在CDocument类中重写一下Serialize函数,保存你的数据就可以了,
    不然程序无法自己保存数据的.
      

  5.   

    问题解决了! 
    原来真的可以在view内响应,但是mainframe类就不行,可能MFC自动生成的就是maimframe的函数 
    多谢各位!
    qbboyqf的建议可以试一下!