VS2010 MFC保存和加载界面状态

MFC取消自动记忆界面布局的解决,重载该方法,详细的可以单步调试,看CDockPane.cpp源码:
//加载界面状态值
void CNSBClientProjectTestApp ::LoadCustomState()
{
      //设置为TRUE,则自动加载界面记忆
      this->m_bSaveState = FALSE;
}

//保存界面状态值
void CNSBClientProjectTestApp ::SaveCustomState()
{
      //设置为TRUE,则自动保存界面记忆
      this->m_bSaveState = FALSE;
}

3、取消自动记忆界面保存后,自己手动保存与加载:
//整个主窗口关闭事件(系统消息事件)
void CMainFrame::OnClose()
{
      // TODO: 在此添加消息处理程序代码和/或调用默认值
      //保存界面状态
      CString strSectionPath = ::AFXGetRegPath(_T("WorkSpace"));
      if(!m_dockManager.SaveState(_T(strSectionPath) ,IDR_MAINFRAME)){
            MessageBox(_T("保存界面布局出错!") , "提示" , MB_OK | MB_ICONWARNING);
      }

      CMDIFrameWndEx::OnClose();
}

//加载保存的界面布局状态(自己加的函数),在App那边调用
BOOL CMainFrame::LoadMainFrmState()
{
      CString strSectionPath = ::AFXGetRegPath(_T("WorkSpace"));
      return m_dockManager.LoadState(_T(strSectionPath) ,IDR_MAINFRAME);
}

你可能感兴趣的:(VS2010 MFC保存和加载界面状态)