当前位置: 首页 > news >正文

【转载】MiniUtilityFramework(三):配置文件概述

转载自:http://blog.csdn.net/norains/article/details/3956980

 

对于MUF的界面来说,最重要的就是配置文件。该配置文件定义了窗口的一切要素,包括坐标,按钮,颜色等等。换句话说,同样的代码,只需要编译一次,但采用不同的配置文件则会得到完全不一样的界面。这在软件功能不变,只是界面需要根据客户的要求进行定制的OEM领域显得更为重要。
    
    由于配置文件和控件是密切相关的,所以在本章节只是叙述了部分与此无关的内容,目的是对配置文件有一个大致的了解。
    
    配置文件其实只是一个简单的txt文档,可以用记事本直接编写。
    
    为了方便解说,我们先来定义一些术语。
    
    示范如下:
    
    [SECTION]
    KEY=VALUE
    
    夹在"[]"之间的我们称之为SECTION,在"="左边的为KEY,而右边的则为VALUE
    
    1.[VARIABLE]
     
     变量替换字段。除了该SECTION以外,其它的SECTION中的VALUE如果有[VARIABLE]中的KEY,则执行替换。
     
     示例如下:
     
     [VARIABLE]
     %COLOR%=255,255,0
     
     [WND_MAIN]
   TYPE=WINDOW
   BACKGROUND_COLOR=%COLOR%
   
     [WND_MAIN]的BACKGROUND_COLOR的VALUE为%COLOR%,所以就直接替换为255,255,0,相当于:
     BACKGROUND_COLOR=255,255,0
     
     该字段还需要注意的是,不要设置%STARTUP_PATH%这个KEY,因为该KEY是在程序运行时自动获取的,如果设置了反而可能会有异常出现。
     
     %STARTUP_PATH%的使用也很简单,和普通的变量一样即可:
     FILE_NAME="%STARTUP_PATH%/UIImage/BK_TIME.bmp"
     
     
     
    2.[FONT]
     
     程序加载的字体文件,该文件必须为tif格式。
     
     示例如下:
     
     [FONT]
     KAI_TI = %STARTUP_PATH%/FONTS/simkai.ttf
     
     该示例中,主要的是VALUE,即%STARTUP_PATH%/FONTS/simkai.ttf这个路径。至于KAI_TI这个KEY,仅仅是标示而已,即使配置文件中也不会起到任何作用。
     
     
     
    3.[LANGUAGE]
     
     语言类别。程序支持多少种语言由该字段决定。
     
     示例如下:
     
     [LANGUAGE]
     CHS
     EN
     
     示例支持两种语言,分别是“CHS”和“EN”。语言的设置可以通过CStrTabBase::SetLanguage函数进行。
     
     [LANGUAGE]字段还和STRING类型有关,根据之前的范例,某个STRING控件的配置文件可以设置如下:
     
     [STR_MOVIE]
     TYPE=STRING
     EN="MOVIE"
     CHS="影片"
     
     如果TEXT或BUTTON和某个STRING关联,那么在调用CStrTabBase::SetLanguage函数进行语言设置之后,界面上的文字会自动变更。
     
     
     
    4.[WND_MAIN]
     
     保留的关键字段,该SECTION定义了主窗口的元素。框架在启动之后,将该窗口作为首要执行。如果该关键字段没有设置,则程序无法正常显示界面。该字段的KYE设置,请参见相应的窗口设置文档。

转载于:https://www.cnblogs.com/hao507/articles/2276483.html

相关文章:

  • 如何免费下载百度文库文章的三种方法
  • WP7开发学习笔记----1
  • 国内与国外网管待遇差别的评论
  • div隐藏输入框
  • 李开复:中国即将迎来IT的黄金时代(转)
  • redmine-1.2.2安装服务(附图)
  • 设计模式系列6-----C++实现状态模式(State Pattern)
  • Linux下编辑生成.mo文件及SecureCRT接收传送文件的方法
  • Linux 挂载windows共享后中文不乱码问题
  • 关于在SCOM中配置短信通知的过程和建议
  • 《Pro ASP.NET MVC 3 Framework》学习笔记之十【Unit Testing的使用】
  • 猜生日问题
  • 启明星会议室预定系统V5.0.0.0版本说明
  • Linux命令 Linux后台运行命令大全
  • 程序员如何写出杀手级简历
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 2018一半小结一波
  • 3.7、@ResponseBody 和 @RestController
  • Java 内存分配及垃圾回收机制初探
  • Javascript设计模式学习之Observer(观察者)模式
  • js 实现textarea输入字数提示
  • JS专题之继承
  • Logstash 参考指南(目录)
  • Mybatis初体验
  • nginx 负载服务器优化
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • RxJS: 简单入门
  • select2 取值 遍历 设置默认值
  • SQL 难点解决:记录的引用
  • 入手阿里云新服务器的部署NODE
  • 用Python写一份独特的元宵节祝福
  • ​MySQL主从复制一致性检测
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #mysql 8.0 踩坑日记
  • #pragma once
  • (1)Nginx简介和安装教程
  • (12)Hive调优——count distinct去重优化
  • (4)STL算法之比较
  • (二十三)Flask之高频面试点
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)nsfocus-绿盟科技笔试题目
  • .NET Core中Emit的使用
  • .NET Micro Framework初体验
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET连接数据库方式
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @Service注解让spring找到你的Service bean
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ C++ ] STL---stack与queue
  • []我的函数库