## 概念
本节主要是对引擎使用或开发中出现的各项概念对您进行一个简单的介绍。
* * * * *
### Windows窗口程序界面设计思想的发展过程
计算机界面设计思想在计算机发展史中是一个重要的发展过程,从一开始的纸带打孔到后来命令行的出现再到如今窗口程序的出现,计算机界面作为计算机与使用者的重要交互媒介,已越来越成为当今时代开发程序的重点之一。而 Windows 作为当今尤其在中国使用最为普遍的视窗图形操作系统,其运行程序的好坏与美观的界面、优秀的用户交互息息相关。
#### 作为Windows窗口程序,其窗口界面开发思想大致可分为四代:
1. **API窗口程序**:程序开发主要采用系统提供的界面开发接口,界面代码冗余复杂,与业务逻辑的耦合系很高;
2. **框架窗口程序**:在API窗口程序的基础上,开发人员将窗口和控件的特性进行了抽象,提供了如MFC的一系列类库给开发者使用,它减少了界面代码的冗余度,但与业务逻辑的耦合度依然很高;
3. **可换肤窗口程序**:由于前两代窗口使用的是Windows提供的系统API,其外貌不易自定义。而可换肤窗口程序通过消息、钩子等机制,使开发人员在添加少量代码的情况下,即可完成窗口控件外观的自定义,并将界面的外观设计分离为皮肤文件,使UI设计师分摊了部分程序员的工作,降低了部分界面和业务逻辑的耦合度;
4. **逻辑窗口程序**:也就是DirectUI窗口程序,它充分吸收了前三代的优劣势,摒弃了让开发人员大量使用底层API的传统开发模式,采用布局文件、主题文件等使界面和业务逻辑分离的做法,在界面美观的前提下提升了程序的安全性和软件界面开发的效率。
* * * * *
### 关于DirectUI架构
DirectUI直译为直接的用户界面,直接是指控件直接在绘制在其窗口上,控件以无句柄形式创建,控件只是逻辑上存在。目前,微软的DirectUI技术已广泛用于Win7等操作系统和大量应用软件上,微软开发的WPF框架就是一套基于DirectUI架构的界面引擎。
DirectUI的好处是可以快速构建高效、绚丽、易扩展的用户界面,界面布局以XML和脚本进行开发,有效地做到了界面布局和业务逻辑的分离,降低之间的耦合度。DirectUI窗口程序相比传统的Windows窗口程序还有支持多种图像格式、控件间透明混合、大量动画特效等优势,是新一代优秀的界面引擎架构。
* * * * *
- 序言
- 基础
- 概念
- 术语
- 相关技术
- 入门
- 如何获取
- 环境需求
- 使用条件
- 开发规范
- 文件结构
- 让我们开始吧
- 全局命令
- 引擎命令
- Ex_Init
- Ex_UnInit
- Ex_XMLRegisterValueCallback
- Ex_XMLRegisterCallback
- Ex_GetLong
- 辅助命令
- Ex_SleepEx
- Ex_GetHash
- Ex_Atom
- 窗口命令
- 窗口相关
- Ex_WndRegisterClass
- Ex_WndCreate
- Ex_WndMsgLoop
- 皮肤相关
- Ex_DUIBindWindow
- Ex_DUICreateFromLayout
- Ex_DUILoadLayout
- Ex_DUIHandEvent
- Ex_DUIShowWindow
- Ex_DUIShowWindowEx
- Ex_DUIGetBkgColor
- Ex_DUISetBkgColor
- Ex_DUISetBkgImage
- Ex_DUIGetAlpha
- Ex_DUISetAlpha
- Ex_DUIGetSysCtl
- Ex_DUIGetObjFromID
- Ex_DUIGetClientRect
- Ex_DUIInvalidateRect
- Ex_DUIObjFromWindowPoint
- Ex_DUIObjFromScreenPoint
- Ex_DUIAddTrayIcon
- Ex_DUIPopupTrayIcon
- Ex_DUIPopupTipsEx
- Ex_DUIDeleteTrayIcon
- 关于布局文件
- 控件命令
- 控件基类
- 关于布局文件
- Ex_ObjCreate
- Ex_ObjCreateEx
- Ex_ObjDestroy
- Ex_ObjGetLong
- Ex_ObjSetLong
- Ex_ObjDispatchMessage
- Ex_ObjSendMessage
- Ex_ObjPostMessage
- Ex_ObjCallProc
- Ex_ObjDefProc
- Ex_ObjDispatchOwnerMessage
- Ex_ObjUpdate
- Ex_ObjInvalidateRect
- Ex_ObjBeginPaint
- Ex_ObjEndPaint
- Ex_ObjGethWnd
- Ex_ObjGethExDui
- Ex_ObjGethTheme
- Ex_ObjGetParent
- Ex_ObjSetParent
- Ex_ObjRegister
- Ex_ObjGetText
- Ex_ObjSetText
- Ex_ObjGetBkColor
- Ex_ObjSetBkColor
- Ex_ObjGetBkImageInfo
- Ex_ObjSetBkImageInfo
- Ex_ObjGetBkMode
- Ex_ObjSetBkMode
- Ex_ObjGetTextColor
- Ex_ObjSetTextColor
- Ex_ObjGetBorderColor
- Ex_ObjSetBorderColor
- Ex_ObjGetAlpha
- Ex_ObjSetAlpha
- Ex_ObjSetFont
- Ex_ObjSetRedraw
- Ex_ObjValidate
- Ex_ObjSetTimer
- Ex_ObjKillTimer
- Ex_ObjEnableScrollBar
- Ex_ObjGetScrollBar
- Ex_ObjGetScrollPos
- Ex_ObjSetScrollPos
- Ex_ObjGetScrollRange
- Ex_ObjSetScrollRange
- Ex_ObjGetTrackPos
- Ex_ObjGetScrollInfo
- Ex_ObjSetScrollInfo
- Ex_ObjGetClassNameA
- Ex_ObjGetClassNameW
- Ex_ObjGetRect
- Ex_ObjClientToWindow
- Ex_ObjMove
- Ex_ObjLockPos
- Ex_ObjIsVisible
- Ex_ObjShow
- Ex_ObjEnable
- Ex_ObjGetAnimationInfo
- Ex_ObjSetAnimationInfo
- Ex_ObjBeginAnimation
- Ex_ObjHandEvent
- Ex_ObjHandEventFromID
- 控件消息
- 介绍
- 属性分发
- 设置提示文本
- 获取提示文本
- 组件状态被改变
- 计算尺寸
- 获取Tab焦点区域矩形
- 绘制背景
- 绘制非客户区
- 绘制主题数据
- 系统控件
- 标题栏
- 图标控件
- 系统按钮
- 菜单
- 基础控件
- 标签
- 按钮
- 普通按钮
- 图形按钮
- 组图按钮
- 下拉按钮
- 图片框
- 链接框
- 选择框
- 三态选择框
- 单选框
- 分组框
- 进度条
- 滚动条
- 编辑框
- 丰富文本框
- 高级控件
- 组合框
- 列表框
- 选择夹
- 浏览框
- 扩展控件
- 绘图命令
- 关于绘图引擎
- 设备上下文
- 画布
- _excanvas_getlasterror
- _excanvas_setlasterror
- _excanvas_getlong
- _canvas_create
- _canvas_destroy
- _canvas_validate
- _canvas_beginpaint
- _canvas_endpaint
- _canvas_clear
- _canvas_drawimage
- _canvas_drawimagerect
- _canvas_drawimagerectrect
- _canvas_drawline
- _canvas_drawlinefrompen
- _canvas_drawimagefromdrawdata
- _canvas_drawimagegird
- _canvas_drawrectangle
- _canvas_fillrectangle
- _canvas_fillrectanglefrombrush
- _canvas_getdc
- _canvas_width
- _canvas_height
- _canvas_setbkmode
- _canvas_getbkmode
- _canvas_bitblt
- _canvas_bitblt_dc
- _canvas_alphablt
- _canvas_alphablt_dc
- _canvas_cliprect
- _canvas_cliphrgn
- _canvas_resetclip
- _canvas_savetofile
- _canvas_resize
- _canvas_drawrectanglefrompen
- _canvas_setfont
- _canvas_getfont
- _canvas_getlogfont
- _canvas_getpixel
- _canvas_calctextsize
- _canvas_drawtext
- _canvas_savetomemory
- _canvas_blur
- 图像
- _image_width
- _image_height
- _image_createfromfile
- _image_destory
- _image_createfromstream
- _image_selectactiveframe
- _image_getframecount
- _image_copy
- _image_copyrect
- _image_createfrommemory
- _image_savetofile
- _image_getframedelay
- _image_createfromhicon
- _image_create
- _image_savetomemory
- _image_lockbits
- _image_createfromhres
- 画笔
- _pen_create
- _pen_destory
- _pen_create_frombrush
- 画刷
- _brush_create
- _brush_destroy
- _brush_createfromimage
- _brush_create_lineargradientfrompoint
- 字体
- _font_createfromfamily
- _font_create
- _font_destroy
- _font_getlogfont
- _font_createfromlogfont
- 路径
- 区域
- 文本格式
- 效果
- 布局文件
- 关于XML
- 文件结构
- 特殊语法
- 主题文件
- 关于EXT
- 文件结构
- 贴图文件
- 描述文件
- 制作主题
- 相关命令
- Ex_ThemeLoad
- Ex_ThemeFree
- Ex_ThemepData
- Ex_ThemeGetData
- Ex_ThemeGetColor
- Ex_ThemeGetRect
- Ex_ThemeDraw
- Ex_ThemeDrawEx
- Ex_ThemeDispatchDrawEx
- 缓动特效
- 关于特效
- 缓动种类
- 相关命令
- 授权机制