DUI引擎属性详解:模板、风格与窗口控制
需积分: 0 26 浏览量
更新于2024-08-04
收藏 27KB DOCX 举报
DUI引擎属性文档1提供了关于DUI引擎核心组件的详细配置属性,这些属性对于理解和定制DUI应用程序的外观和行为至关重要。文档主要分为两大部分:模版属性和窗口属性。
1. **模版属性** (定义在duiobject.h中):
- `baseClass`: 这个属性用于指定一个基础类(classTemplate),新创建的UI元素将继承该类的特性。这有助于复用和扩展已有的UI元素模板。
2. **风格属性** (定义在duiwndstyle.h中):
- `name`:风格类名,用于标识特定样式的UI元素。
- `skin`:皮肤对象名,用于定义UI元素的外观样式,如背景、文本颜色等。
- `ncskin`:非客户区皮肤,可能与客户区皮肤有所区别,比如对话框的标题栏和边框。
- `textmode`:文本样式,通过参照Windows API函数DrawText的FormatFlags,可以调整文本的显示方式。
- 颜色属性(如crbg、crbghover、crtext等):控制不同状态下的颜色,如背景、鼠标悬停、文本颜色、按下状态和禁用状态。
- `font`:字体定义,包括字体大小、粗细、下划线、斜体等属性,以及具体的字体名称(如宋体)。
- `hoverfont`、`pushfont`:鼠标悬停和按下状态的特殊字体。
- `x-margin`和`y-margin`:元素的左右和上下空白,用于调整布局空间。
- `margin`:合并了四个方向的空白,提供简洁的布局配置。
- `spacing`: richtext中的链接和文本块之间的间距。
- `linespacing`: richtext中的文本行距。
- `cursor`:鼠标指针样式,如"hand"(手型)或"arrow"(箭头)。
3. **窗口属性** (定义在duiwnd.h中):
- 继承了风格属性,但更专注于窗口特性。
- `skin` 和 `ncskin`:分别对应客户区和非客户区的皮肤对象。
- `name` 和 `class`:窗口名称和风格属性,可以直接使用`style`属性来指定。
- `id`:窗口的唯一标识符。
- `data`:用于存储与UI交互相关的数据,例如DUINMCOMMAND结构体中的uItemData字段。
- `href`:链接的URL,通常与导航相关。
- `tip`:提示文本,用于鼠标悬停时显示的辅助信息。
- `valign`:元素在容器内的垂直对齐方式,如"top"、"middle"或"bottom"。
- `pos`:窗口的位置,可能是绝对坐标或相对定位。
- `show`:1表示显示,0表示隐藏。
- `msgtransparent`:决定是否处理用户的鼠标事件。
- `sep`:用于自动排列时的水平空格。
4. **子类和扩展**:
- `div`、`dlg` 和 `divex` 是Duiwindow的子类,分别具有额外的功能特性,如div可能仅负责绘制而忽略用户交互,dlg支持拖动区域,divex可能增加了滚动条的支持(通过`sbskin`属性)。
通过理解和配置这些属性,开发人员可以根据需要创建出符合设计规范且功能丰富的DUI界面,实现个性化定制。掌握这些属性是开发基于DUI引擎应用的关键,能够确保控件的一致性和用户体验。
2020-04-04 上传
2020-07-20 上传
2021-06-29 上传
2021-06-13 上传
2020-02-17 上传
2021-05-16 上传
2020-08-30 上传
2020-07-21 上传
大头蚊香蛙
- 粉丝: 22
- 资源: 316
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍