Как я вызываю обновление подпись CDockablePane в пакете функций MFC? Я работаю с примером стиля Visual Studio с вкладками, и я хочу изменить подписи для вкладок.
Они, кажется, кэшируются где-нибудь, хотя, как тогда, когда я изменяюсь от значений по умолчанию, это использует то, на чем использовало приложение, он - предыдущее выполнение. Я ничего не могу найти в реестре, имеющем отношение к этому.
Я изменяю таблицу строк IDS_FILE_VIEW и IDS_CLASS_VIEW для установки новых подписей. Я ступил в CDockablePane:: метод CreateEx и lpszCaption параметр действительно содержат новую подпись, но старая подпись все еще используется.
Новые подписи, кажется, не загружаются, пока область не скрыта и показана снова. Это должно быть подсказкой, но я не могу понять это.
Почему это не будет только использовать то, что я передаю как подпись CreateEx???
В двух словах, это ошибка в пакете функций MFC - фактически в библиотеке BCG Software. Ошибка заключается в том, что вы не можете изменять эти надписи динамически. Их ответ: "Зачем вам это нужно?"
Надписи для панелей с вкладками в прикрепляемой панели хранятся в реестре. Надписи, используемые при создании, НЕ используются, если они уже существуют в реестре.
Таким образом, при первом запуске приложения будут использоваться подписи из таблицы строк. После этого будут использоваться подписи из реестра.
Используя настройки, созданные мастером AppWizard, параметры реестра находятся по адресу:
HKEY_CURRENT_USER\Software\Local AppWizard-Generated Applications\MyApp\Workspace\DockingManager-128\DockingPaneAndPaneDividers
Значение, хранящееся в этом ключе, по сути, является двоичным файлом, который сериализуется в панели при запуске менеджером докинга. Его содержимое не документировано, но вы можете увидеть, что делает код в afxdockablepane.cpp.
Надеюсь, это поможет кому-нибудь еще, кто столкнется с этой проблемой.
Хммм, байбе, я неправильно понял, но я просто вызываю SetWindowText для экземпляра CDockablePane. Заголовок меняется на то, что я передаю в 'SetWindowText' ...