gpt4 book ai didi

c++ - 如何保存MFC应用程序的布局设置?

转载 作者:可可西里 更新时间:2023-11-01 11:50:50 27 4
gpt4 key购买 nike

我知道有些函数可以轻松编写 Windows 注册表,但是我发现在使用向导创建的新 MFC 项目中,一些信息(如拆分条位置、控件的可见性)会自动存储(或者至少我发现没有CWinApp::Write* 在项目中调用)。因为我也有没有这种行为的旧项目,所以我需要弄清楚如何在没有项目向导帮助的情况下做到这一点。请问有人知道这是如何工作的吗?

最佳答案

MFC 控件状态保存魔法发生在“新建”MFC Feature Pack 中,特别是在 SaveState 方法中,例如 CMFCToolBar::SaveState .

因此,要利用这一点,您需要升级您的工具栏和菜单以使用更新的控件,并升级您的应用程序以继承自 CWinAppEx。 .我建议您使用基于新 MFC 向导的应用程序作为如何升级旧 MFC 应用程序的指南。

大部分信息都保存在CPane::SaveState()中,因此如果你想保存某个组件的状态,你需要使用从CPane派生的类。 (有关更多信息,here 是类层次结构)。

保存窗口状态的过程是通过 CFrameImpl::OnClosingMainFrame() 启动的。此函数依次调用 CWinAppEx::SaveState(),它保存一些应用程序设置,然后是 CMFCToolBar 的所有实例(它们在调用 OnCreate 时将自己添加到 CMFCToolBars 的全局列表中)。以类似的方式保存所有可停靠 Pane ,但列表属于您的主框架。然后保存主框架的位置和大小。CViews 和 CFrameWnds 不太受欢迎,因为我发现并尝试过,唯一保存的信息是可见性。

关于c++ - 如何保存MFC应用程序的布局设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com