各位好,小弟初学MFC,遇到一个问题。
    我在MFC对话框中放入如下控件:
    对“确定”按钮关联函数void A::OnButton1(),该函数实现打开文本文件,读取数据,显示到两个编辑框控件中,
函数中包含代码:    FILE *stream1;      
    stream1 = fopen( "d:\\数据源\\数据1.txt", "rw+" );文本中是30个纯数据,我让数据每隔3秒钟显示一个,直到30个数据显示完毕。
    现在我对“取消”按钮关联函数void A::Oncancel() ,希望在按下该键后,能退出对话框,并且关闭所打开的文本文件(因为上述30个数据显示完毕,需要一定时间),我希望能做到随时退出关闭文件。
    但是我在void A::Oncancel()函数中添加fclose(stream1);不能成功,会显示stream1未定义,而我如果在A类的public中添加 FILE *stream1,也不行,还是未定义,请问我该怎么做?不知道我描述是不是能让大家听懂,先谢谢了

解决方案 »

  1.   

    不好意思,图片没显示,不知道怎么贴图,反正就是一个对话框,上面有两个edit控件和两个button控件,button控件分别标记为“确定”和“取消”
      

  2.   

    才30个数据你可以一次读完啊,保存文本的内容,读文就不关文件的事了,直接关闭。
    FILE *stream1;
    stream1 = fopen( "d:\\数据源\\数据1.txt", "rw+" );
    size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
    fclose();需要显示的时候从buffer中读数据就可以了。
    退出的时候delete buffer。
      

  3.   

    FILE *stream1; 不能定义为局部变量,把它定义成对话框的成员变量
      

  4.   

    如果数据很多,你也可以一次读一点,读完关闭,需要的时候再打开文件seek()到对应的位置重新读出来。
    或者,你把FILE *stream1;定义成全局变量,要关闭之前先判断是否stream1 == NULL;
    不是的话就fclose();一下。