Вы можете иметь столько файлов ресурсов, сколько захотите; MSVS поддерживает это. Тем не менее, все они должны иметь уникальные идентификаторы, так что вы все равно можете просто поместить их в один файл.
Вы переключаетесь между наборами ресурсов во время выполнения, проверяя свое состояние, а затем загружая соответствующий ресурс. Вы можете использовать FindResource / LoadResource или LoadString , если вы переключаете только строки.
Одна из стратегий может заключаться в том, чтобы иметь базу ресурсов, которая добавляется ко всем запросам загрузки ресурсов и которая изначально равна нулю. Если ваше условие выполнено, вы можете изменить эту базу на 10000 или что-то в этом роде. Тогда в вашем файле ресурсов нормальная строка, например, будет 0, но строка в случае выполнения условия будет 10000. Нормальное изображение будет 25, но в случае, если условие выполнено, оно будет 10,025. Возможно, есть лучшие стратегии, но я придумал предварительный кофе.