现在的Window程序经常被许多控制栏填充的满满的,像工具栏、状态栏、对话框栏和自定义栏等待。下面介绍如何使应用程序记住控制栏的状态和位置,包括其可视还是隐藏、固定还是浮动、水平还是垂直等信息。
很幸运,保持和恢复这些信息只需要简单的调用CFrameWnd::SaveBarState()和CFrameWnd::LoadBarState(),这两个函数的声明都很简单:
void CFrameWnd::SaveBarState(LPCTSTR lpszProfileName) const;
void CFrameWnd::LoadBarState(LPCTSTR lpszProfileName) const;
lpszProfileName是一个简单的字符串,在函数中用来保存和恢复信息的,在多窗口程序中,每个窗口都有保存自己的控制栏信息。
下面的步骤说明了如何为一个窗口保存控制栏状态:
第一步:用ClassWizard添加WM_CLOSE_消息句柄,在其中调用SaveBarState()函数
const CString strBarState = _T( “MainFrameBarState” );
void CMainFrame::OnClose()
{
// Save bar state
SaveBarState(strBarState);
CMDIFrameWnd::OnClose();
}
第二步:在OnCreate()函数的最后调用LoadBarState()函数
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
…………
LoadBarState(strBarState);
return 0;
}