MFC Feature Pack - загрузка панелей инструментов в неправильном положении после добавления новой панели инструментов - PullRequest
2 голосов
/ 09 ноября 2011

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

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

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

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

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


Примечание: Я думаю, что проблема может быть похожа на этот мой другой оставшийся без ответа вопрос: MFC Feature Pack - Как добавить ускорители без удаления настроек пользователя

...