2

我有一个带有多个工具栏 (CMFCToolbar) 的 MFC 功能包应用程序,它们的位置在会话之间保存。

现在,我添加了一个新工具栏,并将一些按钮从其他工具栏移到了新工具栏。

问题是现在,当我第一次打开我的应用程序时,所有工具栏都出现严重错位(一个在菜单栏上,行太多等)。如果我移动它们并关闭应用程序,则状态将正确保存并在下一个会话中检索。

我已经逐步浏览了代码,发现如果我跳过对条形图的调用,CWinAppEx::LoadState()它们CFrameImpl::OnLoadFrame()位于它们的“初始位置”,即它们将出现在全新安装中的位置。因此,新的工具栏,或者从现有工具栏上删除按钮,会干扰状态的加载。

那么关于如何正确加载状态的任何想法?或者如何防止LoadState()仅在第一次执行时调用?


注意:我认为这个问题可能与我的另一个未回答的问题类似:MFC Feature Pack - How to add Accelerators without Delete user's custom

4

0 回答 0