======================================
目前已经支持滚动 由于时间关系打算 年后再加新功能
写了个教程
http://blog.csdn.net/dalixux/article/details/48830721
======================================
发1个自己写dui库的 demo
例子代码在附件sample.7z
目前UI库里只有迅雷的bolt 和QQ的UI感觉不错
但要命的是都不开源 至于其他的DUI库 还是跟窗口捆绑的有点紧 不符合需求
QT 的也可以用 但是QT实在太大,因此不得不自己写1个
写到现在已经写了好几个月了 还缺少太多的东西 比如滚动 拖放 快捷键 以及浏览器
目前来讲还是缺乏实用价值
但由于已经能用lua脚本写简单控件了 而且我觉得接口除去未实现的应该也算稳定了
想发出来看看 接口设计是否合理 闭门造车还是不行的 考虑再三还是提前发出来了
设计的方向和bolt比较相似 主要是实践中碰到了迅雷那些写UI的人同样的问题
这个UI库也是尝试解决这些问题的一个方案
ui库由于这个月的改动非常大 导致测试的时间不足 今天一直在调BUG
如果发现BUG 直接回帖
大概1个星期到2个星期之间 还会再发1个版本 主要是修复BUG以及增加浏览器的支持
文档几乎没有 主要还是因为等待实现的东西比较多 现在写了文档过不了几天又要改
实在浪费时间
简单介绍下这个ui库的特点
1.
C++编写 轻量级 支持xml, 一个类似CSS的语法来描述属性和 lua脚本编写控件
release版本的dll只有1.6M 用UPX压一下应该可以到0.8M 我觉得应该是
比较轻量了
示例代码里提供了1个纯脚本写的按钮 button.lua
对于类似CSS的支持 由于急着搭框架 仅仅是简单readtoken来解析了下
支持实在太弱 目前已经感觉到不够用 估计还是要花时间重新弄了
2.
off-screen模式 也就是仅提供一块像素图,使用者只需要传递事件,
最后拿像素图贴到窗口上就行了 由于整个库是跟窗口无关的 理论上可以和
任何现有的dui 框架兼容 脑洞够大的话 可以贴到D3D 和opengl里,
同样由于跟窗口无关所以使用的时候要实现一些特定接口
比如内部封装了windowless richedit,而ITextHost里有些接口必须用到窗口
因此也导致针对richedit对象 需要使用者来实现一些跟窗口有关的接口
示例代码里的panel.cpp封装了窗口和UI库的交互
3.
event模型是类似dom
支持tab切换焦点 但UI库里的image text 等表现元素默认是无法接收焦点的
所以在示例代码里切焦点 只会在lua 按钮和 richedit里切换
4.
开源: github上搜索bones能下到整个源码
目前功能比较弱 很多东西还实现不完整 未来的改动应该会比较大
所以当前源码也仅有参考意义
[课程]FART 脱壳王!加量不加价!FART作者讲授!