3

如何存储可以稍后加载到我的应用程序中的设置?

例如,我有一个编辑控件,用户可以更改其字体、字体颜色和背景颜色。当用户更改这些时,我想保存它们,以便当用户再次打开应用程序时,字体和颜色将与它们离开时相同。

我曾考虑过写入 Windows 注册表,但我不仅对如何在那里保存字体感到困惑,(或者即使你可以做这样的事情),而且我还有一个可以运行的便携式版本闪存驱动器。有没有办法将这些设置保存到与可执行文件位于同一目录中的文件中?如果是这样,我将如何保存和加载这些?

如果没有办法使用设置文件完成此操作,我如何使用 Windows 注册表来完成此操作?

4

3 回答 3

3

IMO 最好的方法是将其存储在 ini 文件中,例如,一个文件:app.ini

[AppSettings]
fntBackground=255 255 0
fntFace=Tahome

[LoadDialog]
...

自己写很容易,你也可以在codeproject上找到现成的类,我快速搜索了一下,发现了这个:

http://www.codeproject.com/Articles/5401/CIni

看起来很有希望

于 2012-10-10T15:03:52.017 回答
2

如果您的应用程序被允许写入该文件夹,那么您可以像许多 Windows 应用程序一样使用 .ini 文件。GetPrivateProfile/WritePrivateProfile您可以使用API读取和写入文件,例如GetPrivateProfileInt

如果您正在使用某些框架,它可能还提供更友好的 API 版本(例如 MFC 提供的CWinApp::GetProfileInt和其他)。

于 2012-10-10T13:05:44.420 回答
2

正如 Zdeslav Vojkovic 所说,在 Windows 中读取配置信息的最简单方法是使用GetPrivateProfileString /WritePrivateProfileString 函数。

但随后您会看到:注意 此功能仅用于与基于 Windows 的 16 位应用程序兼容。应用程序应该在注册表中存储初始化信息。这在今天已经过时并且经常被禁止。建议(但通常只是简单的方式)要求您为此使用XML 文件。然后你可以使用任何你喜欢的方法——DOM、SAX、XMLLite

于 2012-10-10T13:27:29.267 回答