2015-11-09 10 views
1

Я использую BURN с приложением StandardBootstrapper. Я также использую bafunctions.dll для выполнения некоторых нетривиальных работ в OnDetect().Получить строку из файла WXL темы с помощью bafunctions.dll и изменить текст метки

Я также хочу, чтобы программно изменить метку пользовательского интерфейса, основанную на вещах я делаю в OnDetect()

Вопросов: Могу ли я получить доступ к локализованным строкам, определенные в файле WXL Тематического, используя выгорание C API?

Как изменить текст элемента ярлыка с помощью API-интерфейса для записи C?

ответ

3

Как изменить текст элемента ярлыка с помощью API-интерфейса Burn C?

Каждый раз, когда страница загружается, 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); 

Могу ли я получить доступ к локализованным строкам, определенные в файле WXL Тематического, используя выгорание C API?

Возможно, но может быть проще. Вы должны подать запрос функции на http://wixtoolset.org/issues для bafunctions.dll, чтобы получить доступ к загруженным файлам loc и теме.

Файл .wxl по умолчанию будет находиться в том же каталоге, что и файл bafunctions.dll. Вы можете использовать методы LocUtil в locutil.h в dutil.lib для работы с .wxl-файлом.