gpt4 book ai didi

c++ - 在应用程序重新启动 C++ Visual Studio 时保存编辑控件用户输入和恢复的有效方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:36 24 4
gpt4 key购买 nike

我刚刚被一个在 VS 上用 C++ 编写的项目所困扰。我有一个带有编辑控件的对话框,用户可以在其中输入 MAC 地址。我想在发生“点击事件”时保存此信息。这样当应用程序退出时,它会被保存并可以再次加载。我自然会将其保存到文件并使用基本文件 I/O。

问题是,“最有效的方法是什么?”。我的研究最终出现在“DialogResult”属性中,但我在 VS 2015 中找不到此属性

https://msdn.microsoft.com/en-us/library/65ad5907(v=vs.100).aspx

非常感谢所有帮助,

-SDEV

最佳答案

这通常是使用应用程序的“配置文件”存储来完成的,它以前位于 .INI 文件中,但现在位于注册表中,在应用程序的软件 key 下。

在 MFC 应用程序的 InitInstance() 中,通常会自动生成对 SetRegistryKey 的调用。这需要一个标识字符串并设置应用程序的配置文件存储。因此,如果您的应用缺少此功能,则需要添加类似 SetRegistryKey(_T("MyCompanyGroupOrAppName")); 的内容。

然后是用于存储和检索信息的 API。对于编辑控件文本,您可能希望使用 CWinApp::WriteProfileString 保存它。因此,在您的处理程序中,您将从编辑控件中获取文本到 CString 中,然后使用

保存它
AfxGetApp()->WriteProfileString(_T("SectionName"), _T("MacAddress"), MyMacAddressString);

要稍后取回字符串,请使用类似的东西:

CString MyMacBeforeTheCrash = pApp->GetProfileString(_T("SectionName"), _T("MacAddress"));

以下是文档的一些链接:

您似乎不确定如何从编辑控件访问文本。有多种方法可以做到这一点,但这取决于您的对话框是如何设置的。

如果您的编辑控件有一个 CString 变量与之关联,使用 DDX(对话框数据交换),那么您可以调用对话框类的成员函数:UpdatData(TRUE); 之后,它的 CString 变量将包含当前文本。要保存一个值,您将新的文本值分配给变量,然后调用 UpdateData(FALSE);

如果您有权访问编辑控件的类变量(CEdit 对象),您可以使用 MyEditControl 将编辑控件的文本复制到 CString .GetWindowText(MyString);.要将字符串的文本复制到编辑控件中,请执行:MyEditControl.SetWindowText(MyString);

如果您的编辑控件没有任何类型的变量,您可能想要添加一个,方法是进入对话框的资源编辑器,右键单击编辑控件,然后从菜单中选择“添加变量”。您将可以选择是要添加控制对象(CEdit)还是类似 CString 的东西。

您还可以使用非 MFC Win32 API 访问编辑控件的文本——这涉及首先以某种方式获取控件的窗口句柄,然后使用 ::SendMessage 发送 WM_GETTEXTWM_SETTEXT 消息到控件。

祝你好运。

关于c++ - 在应用程序重新启动 C++ Visual Studio 时保存编辑控件用户输入和恢复的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079905/

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