• 输入输出文件流


    首先建立一个单文档视图,记得VIEW的父类要选CFORMVIEW。这样的话可以在VIEW的界面中出现一个类似于对话框的东西,然后在上面放上两个对话框和两个编辑框。对两个编辑框创建两个控件变量。针对两个对话框做两个点击操作,代码如下:

    void CfilestreamView::OnBnClickedButton1()

    {

         // TODO: 在此添加控件通知处理程序代码

     

             // 用屏幕输入内容更新m_Var1 m_Var2

         UpdateData(TRUE);

     

         // 创建文件C:/ARC.ARC

         CFile f;

         f.Open(_T("c://arc.arc"),CFile::modeCreate|CFile::modeWrite);

     

         // 创建一个CArchive 对象,并将文件与对象关联

         CArchive ar(&f,CArchive::store);

        CString st1,st2;

         m_edit1.GetWindowText(st1);

         m_edit2.GetWindowText(st2);

         // 串行化m_Var1 m_Var2 到文档

         ar<<st1<<st2;

     

        

     

         // 关闭文档

         ar.Close();

     

         // 关闭文件

         f.Close();

     

    }

     

    void CfilestreamView::OnBnClickedButton2()

    {

         // TODO: 在此添加控件通知处理程序代码

             CFile f;

         if ( f.Open(_T("c://arc.arc"),CFile::modeRead )== FALSE )

         {    MessageBox(_T("Open file ERROR"),_T("ARCH for Windows"));

             return;

         }

     

         // 创建一个CArchive 对象,并将文件与对象关联

         CArchive ar(&f,CArchive::load);

        CString st3,st4;

         // 从对象中抽取数据并赋值给成员变量

         ar>>st3>>st4;

     

     

         m_edit1.SetWindowTextW(st3);

         m_edit2.SetWindowTextW(st4);

         // 关闭文档

         ar.Close();

     

         // 关闭文件

         f.Close();

     

         // 更新屏幕显示

         UpdateData(FALSE);

     

     

    }

     

    ///////////////////////////////////////////////////

    也可以对控件创建两个VALUE型的CString变量,这样就可以直接更简单的来实现了。

     

     

     

     

    关于UpdageData()函数的介绍:

    BOOL UpdateData(

      BOOL bSaveAndValidate = TRUE

    );

    //ParametersbSaveAndValidate Flag that indicates whether dialog box is being initialized (FALSE)or data is being retrieved (TRUE).

      翻译一下:UpdateData,顾名思义,是用来刷新数据的。

      UpdateData(TRUE) -- 刷新控件的值到对应的变量

      UpdateData(FALSE) -- 拷贝变量值到控件显示例如,窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,则需要调用UpdateData(FALSE);反之在IDC_EDIT1oneditchanged()中需要加入UpdateData(TRUE);

      简单的说,如果Updatedata(TRUE) == 将控件的值赋值给成员变量;

      Updatedata(FALSE) == 将成员变量的值赋值给控件;

  • 相关阅读:
    Java 概述
    vue组件事件
    小程序注册
    小程序基础知识梳理
    小程序简介
    公众号
    jeecg-boot
    小程序背景图
    bootstrap-select采坑
    存取cookie
  • 原文地址:https://www.cnblogs.com/ainima/p/6332032.html
Copyright © 2020-2023  润新知