我在使用中发现xtreme toolkit界面的commandbar会自动保存上次使用软件时做的修改,而在代码中却没有反应出来。
导致我在想修改commandbar的时候总是达不到自己想要的结果,请问xtreme toolkit是怎么自动保存的啊?
怎样关掉这个功能?
导致我在想修改commandbar的时候总是达不到自己想要的结果,请问xtreme toolkit是怎么自动保存的啊?
怎样关掉这个功能?
在CMainFrame::OnClose中,调用SaveBarState(_T("YourAppName"));第一次调用LoadBarState可能会报错,增加如下函数,LoadBarState之前先用此函数检查:
BOOL CFrameWndEx::VerifyBarState(LPCTSTR lpszProfileName)
{
CDockState DockState;
DockState.LoadState(lpszProfileName);
for(int i=0; i<DockState.m_arrBarInfo.GetSize(); ++i)
{
CControlBarInfo* pBarInfo = (CControlBarInfo*)DockState.m_arrBarInfo[i];
ASSERT(pBarInfo != NULL);
int nDockedCount = pBarInfo->m_arrBarID.GetSize();
if(nDockedCount > 0)
{
// dockbar
for(int j=0; j<nDockedCount; ++j)
{
UINT nID = (UINT) pBarInfo->m_arrBarID[j];
if(nID == 0)
{
continue; // row separator
}
if(nID > 0xFFFF)
{
nID &= 0xFFFF; // placeholder - get the ID
}
if(GetControlBar(nID) == NULL)
{
return FALSE;
}
}
}
if(!pBarInfo->m_bFloating) // floating dockbars can be created later
{
if(GetControlBar(pBarInfo->m_nBarID) == NULL)
{
return FALSE; // invalid bar ID
}
}
}
return TRUE;
}