关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
来源:互联网 发布:步惊云软件下载 编辑:程序博客网 时间:2024/06/09 23:54
方法一:
在Dialog内部添加一个重构初始化函数OnInitDialog();在初始化函数中把注册表的数据拿出来赋值给相应的成员变量,如下表达式:
nValue =AfxGetApp()->GetProfileInt(lpAppName String,lpKeyName String,nDefault Long);
其中:
lpAppName String,欲在其中搜索条目的小节名。这个字串不区分大小写
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写
nDefault Long,指定在条目未找到时返回的默认值
然后更新到界面UpdateData(FALSE);
以上就已经完成了从注册表拿数据并更新到界面的过程,接下来添加“确定”控件,在控件下添加响应函数,在函数内部实现
如何把数据写入到注册表里去,首先把界面上的值更新到变量里面UpdateData(TRUE);然后把变量的值写入到注册表,如下表达式:
AfxGetApp()->WriteProfileInt(lpAppName String,lpKeyName String,int nValue);
其中:
lpAppName String,欲在其中搜索条目的小节名。这个字串不区分大小写
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写
int nValue,指要存入的成员变量的名称
到此为止就实现了数据存入注册表,关闭对话框,下次重启还保留着上次的数据。方法一所有函数都在类内部,没有在调用这个对话框
的文件里添加任何代码,下面介绍一下方法二,所有代码实现全在调用对话框的那个文件内部实现。
方法二:
找到调用这个对话框的函数,也就是外部文件定义这个类对象的地方。
在模态对话框调用语句DoModal();之前添加方法一中从注册表读值的函数赋给相应的成员变量,格式如下:
dlg.nValue = AfxGetApp()->GetProfileInt(lpAppName String,lpKeyName String,nDefault Long);
其中dlg为对话框的对象。
在调用语句DoModal();之后添加方法一中把成员变量的值写入注册表的函数,格式如下:
AfxGetApp()->WriteProfileInt(lpAppName String,lpKeyName String,dlg.nValue);
其中dlg为对话框的对象。
需要注意的是:这样子做不需要用UpdateData去更新数据,数据更新会在调用对话框的OnInitDialog()与OnOk()时更新。
当然方法一与方法二的读与写部分可以任意组合来实现。
方法三:
当碰到有很多对话框的数据都需要保存到注册表时也可以把所有数据的读和写分别写在两个函数里,然后在调用各个对话框函数的
构造函数内调用读的函数,在析构函数内调用写的函数。所有与注册表的数据交流全部由局部变量来实现,然后,把局部变量与成员
变量的数据交换分别写在DoMadol()函数的前后,前面把局部变量的值赋给成员变量,后面把成员变量的值赋给局部变量。
一些MFC的学习心得,分享出来交流一下,有错误希望指正,共同进步!
1 0
- 关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
- 如何把TUniQuery的查询数据保存到TClientDataSet
- 关于数据保存到注册表。
- MFC中如何将应用程序的配置信息保存到注册表中(一)
- MFC中如何将应用程序的配置信息保存到注册表中(二)
- 把数据保存到本地
- 关于通过java的Preferences保存简单数据到window的注册表中
- webpart如何保存数据到自己的库中
- webpart如何保存数据到自己的库中
- python数据如何保存到excel中
- 如何把EXCEL的数据导入到ORACLE数据库中
- 如何把Access的数据导入到Mysql中
- Android---把数据保存到数据库中(一)
- Android---把数据保存到数据库中(二)
- android工程中把数据保存到文件中的class
- Spark把RDD数据保存到一个单个文件中
- 如何把SQL SERVER里的数据保存到EXCEL里
- 从面向对象的角度看,仿真该如何把数据保存到文件?
- Group By的简单用法
- uva10943(球放盒子问题)
- 简单实现了一个学生成绩信息管理系统
- hdu1671
- what-to-tune-in-mysql-56-after-installation.html
- 关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
- poj 2421 Constructing Roads【kruskal & prim】
- MVC设计模式,预处理,转码(2015.8.11)
- BZOJ1011
- 做一个像向日葵一样的项目经理——激励你的团队
- POJ 3617 Best Cow Line(贪心)
- javaIO流(打印流--和--序列流)
- UIView中使用了NSNotificationCenter之后,重入时会发生Crash的现象
- i2c信号的ACK与NACK