У меня есть приложение MFC Feature Pack с несколькими панелями инструментов (CMFCToolbar), позиции которых сохраняются между сеансами.
Теперь я добавил новую панель инструментов и переместил некоторые кнопки с других панелей инструментов на новую.
Проблема в том, что теперь, когда я впервые открываю свое приложение, все панели инструментов кажутся неуместными (одна над строкой меню, слишком много строк и т. д.). Если я перемещаю их и закрываю приложение, состояние правильно сохраняется и извлекается в следующем сеансе.
Я просмотрел код и обнаружил, что если я пропущу вызов CWinAppEx::LoadState()
в CFrameImpl::OnLoadFrame()
, полосы будут расположены в их «начальной позиции», то есть там, где они появятся при новой установке. Так что новая панель инструментов, или удаление кнопок из существующих, мешает загрузке состояния.
Итак, есть идеи о том, как правильно загрузить состояние? Или как запретить вызов LoadState()
только при первом исполнении?
Примечание. Я думаю, что проблема может быть аналогична этому другому моему вопросу без ответа: Пакет функций MFC — Как добавить ускорители, не удаляя пользовательские настройки