Пакет дополнительных компонентов MFC — панели инструментов загружаются в неправильном положении после добавления новой панели инструментов

У меня есть приложение MFC Feature Pack с несколькими панелями инструментов (CMFCToolbar), позиции которых сохраняются между сеансами.

Теперь я добавил новую панель инструментов и переместил некоторые кнопки с других панелей инструментов на новую.

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

Я просмотрел код и обнаружил, что если я пропущу вызов CWinAppEx::LoadState() в CFrameImpl::OnLoadFrame(), полосы будут расположены в их «начальной позиции», то есть там, где они появятся при новой установке. Так что новая панель инструментов, или удаление кнопок из существующих, мешает загрузке состояния.

Итак, есть идеи о том, как правильно загрузить состояние? Или как запретить вызов LoadState() только при первом исполнении?


Примечание. Я думаю, что проблема может быть аналогична этому другому моему вопросу без ответа: Пакет функций MFC — Как добавить ускорители, не удаляя пользовательские настройки


person MikMik    schedule 09.11.2011    source источник