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

Save application settings MFC CArchive way

本文关键字:CArchive 方式 MFC 设置 应用程序 保存      更新时间:2023-10-16

我在应用程序女巫中有几个设置,我想在更改它时保存。有复选框:

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();
}

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

void CL2HamsterDlg::OnClickedButtonLoad()
{
    Value.GetWindowText(str);
    CFile theFile( pFileName1,CFile::modeWrite );
    CArchive ar(&theFile, CArchive::store);
    ar << Savename;
    ar.Close();
    theFile.Close();
}

初始化时,应用必须加载这些设置并设置它:

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;
}

但是当一个或另一个设置更改程序时,程序会覆盖文件。

附言。我不想使用注册表(由于原因可移植)

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

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

每次发生

更改时,都需要将所有设置写入存档。因此,当程序启动时,从存档文件加载所有设置。