首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存应用程序设置MFC CArchive方式

保存应用程序设置MFC CArchive方式
EN

Stack Overflow用户
提问于 2013-01-30 14:00:50
回答 1查看 1.1K关注 0票数 0

我在应用程序中有几个设置,我希望在更改时保存。有一个复选框:

代码语言:javascript
复制
void CL2HamsterDlg::OnBnClickedCheckAutoselect()
{
    CFile theFile( pFileName1,CFile::modeWrite );
    CArchive ar(&theFile, CArchive::store);
    if(c_Acheck.GetCheck()==BST_UNCHECKED)
        a = 0;
    else
        a = 1;
    ar << a;
    ar.Close();
    theFile.Close();
}

和带有保存按钮的组合框(当按下保存时保存组合内容):

代码语言:javascript
复制
void CL2HamsterDlg::OnClickedButtonLoad()
{
    Value.GetWindowText(str);
    CFile theFile( pFileName1,CFile::modeWrite );
    CArchive ar(&theFile, CArchive::store);
    ar << Savename;
    ar.Close();
    theFile.Close();
}

在初始化时,应用程序必须加载这些设置并进行设置:

代码语言:javascript
复制
BOOL CL2HamsterDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
    pFileName1 = "settings.dat";    
    theFile.Open( pFileName1,CFile::modeRead );
    CArchive ar(&theFile, CArchive::load);
    ar >> a;
    ar.Close();
    theFile.Close();
    if(a == 1)
        c_Acheck.SetCheck(BST_CHECKED);
    return TRUE;
}

但每次当一个或另一个设置改变时,程序都会覆盖文件。

ps。我不想使用注册表(因为可移植的原因)

我的问题是如何以序列化的方式写入和读取设置?

保存程序设置状态的替代方法有哪些?(请举例说明)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-30 19:06:57

每次发生变化时,您都需要将所有设置写入存档。相应地,当程序启动时,从存档文件加载所有设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14597671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档