使用 bafunctions.dll 从主题的 WXL 文件中获取字符串,并更改标签的文本
Get string from theme's WXL file using bafunctions.dll, and change the text of a label
我将 BURN 与 StandardBootstrapper 应用程序一起使用。
我也在使用 bafunctions.dll 在 OnDetect() 中做一些重要的工作。
我还想根据我在 OnDetect() 中所做的事情以编程方式更改 UI 标签
问题是:
我可以使用 burn C API 访问主题的 WXL 文件中定义的本地化字符串吗?
如何使用 burn C API 更改标签元素的文本?
How can I change the text of a label element using burn C API?
每次加载页面时,WixStdBA 都会遍历该页面上每个控件的文本,并通过引擎的 FormatString
方法对其进行格式化。请注意,在 v3.x 中,不在页面内的控件仅格式化一次 - 在调用 OnDetect 之前。这是 bafunctions.dll 目前唯一支持的更改控件文本的方法。它需要访问主题才能直接执行此操作。
这是一个例子。对页面内控件的文本使用 loc 字符串。
<Page>
<Text>#(loc.MyCustomText)</Text>
</Page>
在 .wxl 文件中,在 loc 字符串的值中使用一个变量。
<String Id="MyCustomText">Static text plus [MyCustomTextVariable]</String>
在 OnDetect 或 OnDetectComplete 中,设置变量的值。
pEngine->SetVariableString(L"MyCustomTextVariable", sczValue);
Can I access localized strings defined in the theme's WXL file using burn C API?
这是可能的,但会更容易。您应该在 http://wixtoolset.org/issues 为 bafunctions.dll 提交功能请求以访问加载的 loc 字符串和主题。
默认的 .wxl 文件将与 bafunctions.dll 位于同一目录中。您可以在 dutil.lib 中使用 locutil.h 中的 LocUtil 方法来处理 .wxl 文件。
我将 BURN 与 StandardBootstrapper 应用程序一起使用。 我也在使用 bafunctions.dll 在 OnDetect() 中做一些重要的工作。
我还想根据我在 OnDetect() 中所做的事情以编程方式更改 UI 标签
问题是: 我可以使用 burn C API 访问主题的 WXL 文件中定义的本地化字符串吗?
如何使用 burn C API 更改标签元素的文本?
How can I change the text of a label element using burn C API?
每次加载页面时,WixStdBA 都会遍历该页面上每个控件的文本,并通过引擎的 FormatString
方法对其进行格式化。请注意,在 v3.x 中,不在页面内的控件仅格式化一次 - 在调用 OnDetect 之前。这是 bafunctions.dll 目前唯一支持的更改控件文本的方法。它需要访问主题才能直接执行此操作。
这是一个例子。对页面内控件的文本使用 loc 字符串。
<Page>
<Text>#(loc.MyCustomText)</Text>
</Page>
在 .wxl 文件中,在 loc 字符串的值中使用一个变量。
<String Id="MyCustomText">Static text plus [MyCustomTextVariable]</String>
在 OnDetect 或 OnDetectComplete 中,设置变量的值。
pEngine->SetVariableString(L"MyCustomTextVariable", sczValue);
Can I access localized strings defined in the theme's WXL file using burn C API?
这是可能的,但会更容易。您应该在 http://wixtoolset.org/issues 为 bafunctions.dll 提交功能请求以访问加载的 loc 字符串和主题。
默认的 .wxl 文件将与 bafunctions.dll 位于同一目录中。您可以在 dutil.lib 中使用 locutil.h 中的 LocUtil 方法来处理 .wxl 文件。