BCG可以自动保存dockingcontrolbar的属性(位置,大小,可见,停靠等),不过必须把dockingcontrolbar放在Mainframe里面。
如果dockingcontrolbar在childframe里面(类似MDIBars那个sample),就没法保存了。但是看了一下CBCGPMDIChildWnd类好像有SaveCunstomState或者类似的方法。
哪位大虾有过类似的开发经验,请指教一下。多谢
如果dockingcontrolbar在childframe里面(类似MDIBars那个sample),就没法保存了。但是看了一下CBCGPMDIChildWnd类好像有SaveCunstomState或者类似的方法。
哪位大虾有过类似的开发经验,请指教一下。多谢
我知道肯定说通过重载某个函数来实现,但是重载函数中这个操作是不是很复杂,我看了CBCGPFrameWnd的类似函数,都是一层套一层。还有这个state的结构是什么样的?如果哪位有些代码能做参考最好。谢谢啦。
这可就太麻烦了。
看了一下SetBarSize的example,手动设置大小和位置非常的不方便,所以我就想用CBCGPMDIFrameWnd中写好的代码来实现,但是我发现这些Save和Load好像也不是放在CBCGPMDIFrameWnd类中的,似乎从CBCGPWorkSpace中调用的,现在就是不太清楚者之间的关系,以及怎么条用这些函数。
在OnClose或者OnDestroy里用
CString str = _T ("Software\\XXX\\XXX\\Settings\\ChildFrm\\");
GetDockManager()->SaveState(str);
重写一下LoadFrame里用
GetDockManager()->LoadState(_T("Software\\XXX\\XXX\\Settings\\ChildFrm\\"));
GetDockManager()->SetDockState();就可以了