CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

保存对话框状态

楼主kikyang(紫辰)2005-01-07 17:55:57 在 VC/MFC / 界面 提问

如何在声明一个对话框对象后读取上次保存在系统中的该对话框状态(保存在一个自定义的文件中,这里我不想用INI或注册表的方式),在关闭对话框的时候自动保存当前对话框的状态(对话框对象中的变量)。  
  其他的信息如下:  
  //class   CRADDLG   :   public   CDialog  
   
  CRADDLG   raddlg;  
  //我希望在这里读取到上次对话框的状态  
  raddlg.DoModal();  
  //当关闭对话框的时候我希望系统能够保存对话框状态,如对话框对象中各个变量的值。  
   
  我目前的考虑是用CFile和CArchive来保存。按道理CDialog类是继承CObject的,所以是按道理是可以串行化整个类的,但是暂时还没有成功。  
  以下是目前的代码,不知道有什么问题,请指教。  
   
  CRADDLG   raddlg;  
  CFile   file;  
  file.Open(_T("rad.cfg"),CFile::modeReadWrite|);  
  CArchive   ar(&file,CArchive::load);  
  raddlg.Serialize(ar);  
  ar.Close();  
  raddlg.DoModal();  
  CArchive   ar1(&file,CArchive::store);  
  raddlg.Serialize(ar1);  
  ar1.Close();  
  file.Close(); 问题点数:50、回复次数:7Top

1 楼xuzheng318(忧郁王子)回复于 2005-01-07 17:57:34 得分 5

1楼帮你up!Top

2 楼fengqinggao(风清高)回复于 2005-01-07 18:18:55 得分 35

这样做不太现实吧,这些语句理论上没错,实际应该是不行的,Serialize函数就算可以这么用,它保存的东西也肯定不是你想要的。  
   
  我的想法是:  
  1、在OnDestroy()函数中,将一些数据和状态变量,分别保存到文件的指定位置(也就是你自定义的格式了),例如一个CEdit的数据,可以将它的字符串保存起来,一个单选框可以将其是否选中的状态数据保存起来;  
  2、在OnInitDialog()函数中,从你的文件按固定(自定义)的格式读出每个控件的状态数据,并且赋值,这样就达到目的了。  
   
  如果你想在对话框DoModal()前初始化,那就只能初始化控件数据,不能用控件的句柄初始化  
   
  方法和楼主的大相径庭,如果楼主的方法可行,那的确比较简单,我的就仅供参考了,:)Top

3 楼csdn_cht(欣欣兽)回复于 2005-01-07 18:27:32 得分 5

这段代码没有问题,你的serialize()和对话框的变量初始化有没有问题?Top

4 楼chuanke((C ) 2005【空间代数】. All rights reserved .)回复于 2005-01-08 14:12:11 得分 5

学习Top

5 楼kikyang(紫辰)回复于 2005-01-10 10:15:39 得分 0

现在的问题是对话框类不知道怎么就不支持默认的构造函数(什么参数都没有,内容也是空的),如果手工加上了这样的构造函数,CRADDLG   raddlg;这里就会出问题。  
  希望有高人实际试验一下,指点一下。Top

6 楼kikyang(紫辰)回复于 2005-01-10 10:21:46 得分 0

回:fengqinggao(风清高)    
  Serialize函数肯定是要根据自己的要求重载的,其实我们的方法也不是大相径庭,只是实现的位置有所区别罢了。Top

7 楼kikyang(紫辰)回复于 2005-01-25 17:29:44 得分 0

最后基本用的是   fengqinggao(风清高)类似的方法,看来问题也没有什么更好的解决办法了,结帖了,谢谢各位.Top

相关问题

  • 保存对话框
  • 文件保存对话框
  • 如何调用通用对话框中保存的对话框
  • 如何去掉保存对话框?
  • 关于保存问题的对话框
  • 保存图片时,对话框勿扰?
  • ★★★★★★怎么在保存对话框中保存网页?!★★★★★★
  • “文件下载”对话框的“打开”按钮是灰的,只能点“保存”或“取消”,如何设置将“打开”按钮变为可用状态?(100分)
  • 如何引用windows的保存文件的对话框?
  • Excel 2000的打开、保存对话框不见了

关键词

  • 函数
  • 控件
  • 数据
  • 文件
  • 对话框
  • raddlg
  • 保存
  • craddlg
  • 初始化
  • 状态

得分解答快速导航

  • 帖主:kikyang
  • xuzheng318
  • fengqinggao
  • csdn_cht
  • chuanke

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo