zoukankan      html  css  js  c++  java
  • 关于代码配置生成工具的软件

    该软件的特点是能够通过配置选项来生成对应的代码跟配置文件。

    界面使用duilib

    1、树形控件的使用。该控件是参照例子的游戏大厅的树形控件进行修改。

        树形控件是继承自CListUI空间,也就是说其实树形控件的每一行都是使用列表列出。这里使用的是html的方式进行显示。

        在初始化的时候将所有的选项都放入listui中,然后基于“父节点”进行判断是隐藏还是显示,通过SetInternVisible来设置,起初我使用的是SetVisible的方式发现不起作用,最终使用该方式了。我起初选择setvisible的原因是我看到Getvisible是俩变量全为真才返回真。在发现不行的时候,看了下,发现setvisible初始化都是true,除非在xml中特别声明,而intervisible却是在构造函数中直接初始化为true.但是具体为什么,需要路过的大神指点迷津。

    2、在设计上面,置给树形控件的数据也是额外创建了一棵树,然后在树形控件点击选择对应哪个节点,然后在额外的树上进行修改,将结果给treeview显示。这样实现逻辑跟视图的分开。 这样做也有一个好处就是在后期可能会支持命令行的方式直接配置,而不是显示界面再配置。

    3、在文件的路径判断上面使用了谷歌的base库的判断方式,来判断当前路径是否是绝对路径。然后分隔符也使用base库的方式,搞成数组,再遍历数组每个分隔符。具体参考file_util文件。

    4、计算数组的方式使用自己写的ArraySize,这里也借鉴了base的Arraysize,起初不理解为何这样做可以,后来发现sizeof()在编译期就已经确定了,所以不去管你声明的函数具体有没有实现。其实可以做这样一个测试。int a = 0; sizeof(++a); print(a) 会发现a 还是显示0.

    template<typename T, unsigned int N>

    char (&ArraySizeHelper (T (&)[N]))[N];

    #define ArraySize(array) (sizeof(ArraySizeHelper(array)))

    5、在点击弹出一个对话框,然后可以在里面选择文件或者文件夹这里,可以参照window程序设计里面的GetOpenFileName 和 GetSaveFileName来操作。

    在这里返回的文件名时,可以使用::FindFirstFile等对应的一系列函数(可以通过msdn)进行查找。记住这里有一个地方,在查找到的文件夹的时候会返回. 或者..这样的路径。这里需要过滤掉,否则在路径递归的过程中会出现死循环的情况。

    有时候创建的时候输进来的是路径不存在的文件,择需要使用CreateDirectory进行文件夹的创建。

  • 相关阅读:
    文件管理
    字符编码
    字典练习,统计字符串中单词出现次数
    字典有关练习:购物车
    列表及列表操作方法
    字符串及用法
    变量,程序交互,基本数据类型
    /usr/bin/ld: i386:x86-64 architecture of input file `command.o' is incompatible with i386 output
    混合云存储系统开发总结
    小记6月27
  • 原文地址:https://www.cnblogs.com/cxiaoln/p/4091443.html
Copyright © 2011-2022 走看看