Visual Studio MFC工具栏编辑器的图标顺序不会更新

问题描述

|| 我一直在尝试在Visual Studio 2010中的MFC项目中创建自定义工具栏。我一直在关注Ivan Horton的Beginning Visual C ++ 2010中的Sketcher教程。我遇到的问题是工具栏不会更新以反映我创建的图标的顺序和间距。 我创建了一个小屏幕截图来演示该问题: 后台是带有我所需的工具栏配置的Visual Studio工具栏编辑器。前台是实际的应用程序,它不反映我设计的图标的间距或顺序。它的确反映了正在添加的新图标,并且这些图标可以正常工作,但是我似乎无法让它们重新排序或适当地间隔自己。它们只是按照我创建它们的顺序附加到末尾。 我已经尝试了重新启动VS和Windows的基本技术,但无济于事。 有关使其正常播放的任何提示?缺少这一点,是否有地方可以手动查看或编辑由工具栏编辑器生成代码?     

解决方法

        首先,如果您在VS.NET 2005中创建MFC SDI / MDI项目,则不会出现此类问题。它发生在VS.NET 2008和2010中。 实际上,对标准工具栏的重新布置确实会生效。它只是不向您显示默认状态。要恢复状态:单击工具栏末尾的小箭头按钮->添加或删除按钮->标准->重置工具栏。 尽管我不是100%知道为什么会这样发生(这种设计或错误),但是有一种解决方法,它可以起作用: 将以下代码添加到“ 0”的末尾
BOOL CMainFrame::LoadFrame(UINT nIDResource,DWORD dwDefaultStyle,CWnd* pParentWnd,CCreateContext* pContext) 
{
...

// Explicitly restore toolbar state
m_wndToolBar.RestoreOriginalstate();

return TRUE;
}
我建议您与Microsoft支持工程师联系,因为网络上资源很少。     ,        原因可能是只要您的应用程序启动,工具栏状态就已经从注册表中加载了。因此,框架读取工具栏状态并将新按钮添加到末尾。注册表中是否有工作区键,并且您在对工具栏进行更改时是否尝试将其删除?密钥应位于HKEY_CURRENT_USER \\ Software \\ MyCompany \\ MyApp \\ Workspace之类的位置 MyCompany和MyApp的值通常在InitInstance中设置。始终调用RestoreOriginalState()会破坏代码,以允许用户修改工具栏。