我有一个带有多个工具栏(CMFCToolbar)的MFC Feature Pack应用程序,其位置在会话之间保存。
现在我添加了一个新工具栏,我已经将一些按钮从其他工具栏移动到新工具栏。
问题在于,现在,当我第一次打开我的应用程序时,所有工具栏都显示错位(菜单栏上有一个,行太多等)。如果我移动它们并关闭应用程序,则会在下一个会话中正确保存和检索状态。
我已经逐步完成了代码,发现如果我在CWinAppEx::LoadState()
中跳过CFrameImpl::OnLoadFrame()
的调用,那么这些小节位于其“初始位置”,即它们将出现在全新安装中。因此,新工具栏或从现有工具栏中删除按钮会干扰状态的负载。
那么关于如何正确加载状态的任何想法?或者如何仅在第一次执行时阻止对LoadState()
的调用?
注意:我认为问题可能类似于我的另一个未回答的问题:MFC Feature Pack - How to add accelerators without deleting user's customization