在主框架中,向导生成的几个停靠窗CDockablePane状态会自动保存,即在第二次打开时,停靠窗的大小和位置会和上次的状态一致,这对于使用者来说是非常友好的。但如果想在子框架中有自己的停靠窗且保存状态,就不是很容易了。经过研究,采用如下方法一定可以将子框架的停靠窗状态保存下来。
创建并显示停靠窗,在子框架的OnCreate函数中实现,和主框架相同,在此不在赘述。下面重点将子框架如何实现状态保存。
1、保存状态
有两个地方,一个是APP类中的虚函数SaveCustomState()中遍历所有子框架,对状态进行保存,保存在状态需要取不同的名字。
以下为参考例子:
void CProtocolTestToolsApp::SaveCustomState()
{
POSITION pos = theApp.pDocT_Protocol->GetFirstDocPosition();
while (pos != NULL)
{
CProtocolTestToolsDoc* pDoc = (CProtocolTestToolsDoc*)(theApp.pDocT_Protocol)->GetNextDoc(pos);
if (pDoc == NULL) break;
POSITION pos1 = pDoc->GetFirstViewPosition();
if (pos1 != NULL)
{
CProtocolTestToolsView* pView = (CProtocolTestToolsView*)pDoc->GetNextView(pos1);
CChildFrame* pParent = (CChildFrame*)pV