在Visual Studio对话框资源脚本中使用#defined值?

时间:2009-08-30 16:02:29

标签: windows visual-studio-2008 dialog embedded-resource

我正在尝试为我的Windows C ++应用程序创建一个“关于”框。在Visual Studio 2008中,我使用对话框编辑器来设计对话框。我希望“关于”框能够以静态标签显示应用程序的版本。

我可以将版本硬编码到对话框中,存储在.rc文件中,但是我必须记住在多个位置更新版本。

我的应用程序版本为#defineversion.hAPPLICATION_VERSION。可以说服资源编辑器放

#include "version.h"

位于.rc文件的顶部,因此我可以访问APPLICATION_VERSION符号。

但是,我不能在对话框编辑器中使用此符号。我可以手动编辑.rc文件,用符号APPLICATION_VERSION替换硬编码的版本字符串。这在我再次在对话框编辑器中编辑对话框之前一直正常工作:从对话框编辑器中保存.rc后,符号将被当前值覆盖。

当然,我可以将版本标签设置为一些虚拟文本,当我收到WM_INITDIALOG时覆盖该文本,但这种感觉非常笨重且不必要。还有其他解决方法可以让我将应用程序版本保存在一个地方吗?

1 个答案:

答案 0 :(得分:0)

我这样做的方法是将资源放在一个带有.rc2扩展名的单独文件中,将#include放入.rc文件中(就像你在使用{ {1}})。然后,我使用普通文本编辑器编辑version.h文件,而不是Visual Studio资源编辑器。

该系统对于.rc2资源来说并不算太糟糕,这就是我使用它的资源,但我可以看到它对于对话资源来说会更加痛苦。我很想听到一个更好的方法,但我不知道一个。