给duilib增加脚本支持
来源:互联网 发布:依阿华级战列舰 知乎 编辑:程序博客网 时间:2024/06/15 15:15
突然心血来潮, 想给duilib增加脚本支持. 那就行动起来吧.
使用的脚本是angelscript, 是开源的, 官方网址: http://www.angelcode.com/angelscript/
布局文件中, 有2种写法.
第一种 <Script language="cplusplus" include="button.as" />
第二种, 内嵌脚本。
<Script language="cplusplus" >
void OnControlInit(CControlUI @obj)
{
obj.SetBkColor(0xFFFF0000);
}
</Script>
由于内嵌脚本的方式, 又涉及到复杂的xml解析。所以,内嵌脚本的方式不要影响CMarkup解析。
先举个例子,
buttom.as的文件内容
void main2(CControlUI @obj)
{
obj.SetBkColor(0xFF00FF00);
}
如下书写xml布局文件
<?xml version="1.0"?>
<Window size="572,384" sizebox="0,0,8,8" caption="0,0,0,80" equalscale="true">
<Script language="cplusplus" include="button.as">
void OnControlInit(CControlUI @obj)
{
obj.SetBkColor(0xFFFF0000);
}
void main(CControlUI @obj)
{
obj.SetBkColor(0xFF0000FF);
}
</Script>
<VerticalLayout pos="0,0,380,192" bkcolor="0xFFA6CAF0" width="380" height="192" >
<Control pos="38,28,190,155" width="152" height="127" float="true" OnInit="OnControlInit" OnSetFocus="main" OnKillFocus="main2"/>
</VerticalLayout>
</Window>
脚本一共定义了3个函数: OnControlInit, main, main2, 脚本的入口函数参数固定为 CControlUI @obj, 注意@这个符号表示C++里面的引用。
实现效果,
当OnInit时,调用OnControlInit, 设置控件背景色
当获得焦点时, 调用main, 设置控件背景色
当失去焦点时, 调用main2,设置控件背景色
- 给duilib增加脚本支持
- 给duilib设计器增加richtext
- 给IE增加dom3xpath支持
- duilib 给List表头增加百分比控制宽度的功能
- 如何给开源的DUILib支持Accessibility
- 给Java项目增加验证码支持
- 给Java项目增加验证码支持
- 第十三节、给webpack增加babel支持
- duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
- 【转载】duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
- duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
- duilib加入Grid支持
- duilib学习之一 增加GroupBox
- DuiLib窗口增加阴影效果
- Office 2003支持XML 给杀毒软件公司增加新难题
- 给aptana studio3增加jQuery的提示支持
- 菜鸟给 S5pv210 android 增加VGA800*600 VGA1024*768 支持
- 如何给GeoServer增加其支持的坐标系种类
- Unity3D常见面试题
- Spring 定时任务
- RocketMQ原理解析-namesrv
- DOM
- 相对路径与绝对路径个人理解
- 给duilib增加脚本支持
- 杭电acm1785 求坐标夹角排序
- HDU 2298 Toxophily(三分+二分)
- 代码质量管理平台Sonar的安装、使用
- 汉诺塔(一)
- MySQL拼接分组查询(查询一天的数据)
- hdu 6097 Mindis(多校联赛)
- mysql复制之HeartBeat介绍和裂脑
- HDU-6103 Kirinriki