DUI引擎属性详解:模板、风格与窗口控制

需积分: 0 0 下载量 15 浏览量 更新于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引擎应用的关键,能够确保控件的一致性和用户体验。