树型控件,通用对话框,读写配置文件
接上一文章的内容,继续写 . . . . . .
回到 _启动窗口 界面添加弹出式菜单,鼠标右键单击,选择菜单编辑器,或者使用快捷键(Ctrl+E)
如下图:
第一行输入:弹出式菜单作为标题,把 可视复选框的√去掉
第二行和第三行分别点击 向后插入 按钮
分别输入数据:导入数据,导出数据,点击确定退出编辑
然后选中 联系人一 中的树型控件,添加 鼠标右键被放开 事件
生成事件之后,在事件下方添加代码,用来弹出刚才编写的菜单,如下如所示:
弹出菜单 (弹出式菜单, 取鼠标水平位置 (), 取鼠标垂直位置 ())
联系人二的面板和联系人三的面板也做同样的操作,(添加鼠标右键被放开的事件)
写完这个之后,可以运行一下程序,然后鼠标右键单击窗口内的树型控件,松开鼠标之后,就会弹出菜单了。
同样联系人二 和 联系人三 面板也是可以弹出菜单。
写完上述内容之后,回到 _启动窗口 界面,往窗口里面添加 通用对话框控件
然后在窗口上方的菜单中,分别为 导入数据 和 导出数据 添加消息响应
添加消息响应函数完毕之后,分别为这两个函数添加代码,如下图:
他们的代码之间不同之处在于,通用对话框的类型,导入数据的函数的通用对话框的类型为:0,导出数据的函数的通用对话框的类型为:1
那么 0 和 1 分别是什么意思呢?这是因为通用对话框的属性列里面定义了这些数字:
0:表示打开文件
1:表示保存文件
2:表示字体选择
3:表示打开帮助
所以我们上述的函数的响应导入函数时候要打开文件,类型选择为:0导出函数响应的时候要保存文件,类型选择为:1.
看下图
写完这些之后,我们要开始写 导入数据 和 导出数据 的程序了,
首先,我们要回到 _启动窗口 界面,然后选中 通用对话框 控件,给该控件添加属性。输入过滤器内容,和默认的文件后缀。
输入的内容如下:
我们先实现导出数据的代码,大致的步骤如下:
1.判断打开的保存文件对话框是否是点击确定按钮关闭的。如果不是点击确定按钮关闭的窗口,我们直接返回,不处理任何数据。
2.通过当前的树型框来获取用户要保存内容的路径和文件名。
3.如果用户是点击确定按钮关闭后,我们获取当前显示的树型框(显示的是树型框1,树型框2,还是树型框3.)
3.开始读取当前树型框的内容,通过索引来读取树型框的内容,获取到内容后,判断该节点是不是父节点,如果是父节点,则我们先写入一个‘#’来区分父节点和子节点,然后在写入父节点的数据,如果该索引ID不是父节点的内容,则我们直接写入节点的内容。写入一次父节点或者子节点后索引ID都要往上增加一,目的是把索引ID移动到下一个节点上,方便下一次再次取数据。
同样,树型框2 和 树型框3 的处理也是一样的道理。代码如下图所示:
注:我们保存数据,写入的是 配置文件,也就是我们常使用的ini文件。
调用格式: 〈逻辑型〉 写配置项 (文本型 配置文件名,文本型 节名称,[文本型 配置项名称],[文本型 欲写入值])
将指定文本内容写入指定配置项中或者删除指定的配置项或节,如果指定配置文件不存在,将会自动创建。成功返回真,失败返回假。本命令为初级命令。
参数<1>的名称为“配置文件名”,类型为“文本型(text)”。指定配置文件的名称,通常以.ini作为文件名后缀。
参数<2>的名称为“节名称”,类型为“文本型(text)”。包含欲写入配置项所处节的名称。
参数<3>的名称为“配置项名称”,类型为“文本型(text)”,可以被省略。参数值指定欲写入配置项在其节中的名称。如果参数值被省略,则删除指定节及其下的所有配置项。
参数<4>的名称为“欲写入值”,类型为“文本型(text)”,可以被省略。参数值指定欲写入到指定配置项中的文本。如果参数值被省略,则删除所指定配置项。
代码完成之后,我们运行,弹出菜单,选择导出数据,弹出保存文件的对话框,输入保存的文件名
如下图,保存类型,已经是ini文件了,所以保存出来的文件后缀名是*.ini格式的
保存出来的数据内容如下: