子 MFC 对话框可以 save/load 其停靠窗格布局吗?如果是这样,如何?

Can a child MFC dialog save/load its docking pane layout? If so, how?

我目前正在开发一个项目,一个用 C++ MFC 编写的模拟器。在我们的模拟器中,我们有一个在模拟器的子对话框中运行的组件编辑器。此子对话框使用停靠窗格来组织信息。

唯一的问题是,我们无法让此子对话框的停靠窗格保存其在 close/re-open 上的位置。可能吗?我知道如果您使用 Visual Studio 样式开始一个新项目,默认情况下会完成,但是对于不是主应用程序的子对话框也可以完成吗?

class HDVehicleEditor_MainFrame : public CFrameWndEx
    {
    // Class declarations here 
    }

停靠面板的持久化是通过 CDockingManager class 实现的,它与主框架 window 相关联。在您的对话中,谁对此负责?您是否编写了自己的 CDockingManager?然后你需要自己实现 CDockingManager::LoadState()/CDockingManager::SaveState()。