Win32 应用程序设置

Win32 Application Settings

本文关键字:设置 应用程序 Win32      更新时间:2023-10-16

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

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

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

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

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

[AppSettings]
fntBackground=255 255 0
fntFace=Tahome
[LoadDialog]
...

自己编写它很容易,您也可以在CodeProject上找到现成的类,我快速搜索并找到了这个:

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

看起来很有希望

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

如果您使用的是某些框架,则它可能还提供更友好的API版本(例如,MFC提供CWinApp::GetProfileInt等)。

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

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