我在应用程序中有几个设置,我希望在更改时保存。有一个复选框:
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;
}但每次当一个或另一个设置改变时,程序都会覆盖文件。
ps。我不想使用注册表(因为可移植的原因)
我的问题是如何以序列化的方式写入和读取设置?
保存程序设置状态的替代方法有哪些?(请举例说明)
发布于 2013-01-30 19:06:57
每次发生变化时,您都需要将所有设置写入存档。相应地,当程序启动时,从存档文件加载所有设置。
https://stackoverflow.com/questions/14597671
复制相似问题