程序开发界面与代码分离技术-界面描述语言
2010-01-20 15:57
302 查看
下载界面描述语言示例:http://download.csdn.net/source/2008918
一、原理
简单地说可以认为是一个软件界面
平台,这个语言只专注与界面生成,并能很好地实现界面与主程序的交互。
界面描述语言组件实现了根据脚本的定义代码进行界面的创建、管理及交互。
交互是双向的,界面通过控件的事件与主程序进行交互,而控件的响应事件是相对固定的。
只要在主程序中使用
”
AddInterfaceFunction
(
主窗口关闭
);
”
将函数添加到函数表中,都能在界面中将某一事件与这个函数进行映射。
若主程序要操控界面元素,可以使用“主窗口.
面板一.
编辑控件1
”这样的命名方式进行引用。
(不能上传图片)
二、主要优点
1
、实现程序功能与界面的分离,将程序员从复杂的界面开发中解脱出来,让程序员能专注于程序的功能开发。
2
、大大降低了软件界面开发的难度,以往开发软件界面必须要有专业的程序员开发才能实现,而使用界面设计语言只需要简单学习一下这个语言的语法(语法非常简单),就能进行界面开发,根本不需要很专业的程序开发技术。界面开发可以让更专业的美工人员来实现,即能大大缩短软件的开发周期,又能使软件更加美观专业。
3
、实现了软件的功能与界面的无关性,可以使软件自由地换肤(就像人穿衣服一样),大大提高了软件的灵活性和趣味性。
4
、平台无关性。
界面脚本即可以用在
Windows
平台下,也可以用在
Linux
下,非常方便软件的移植。
5
、语言无关性。
无论你是用
VC
、
VB
、
Delphi
还是
C#
开发程序,都可以使用界面设计语言所设计出来的界面。
6
、升级方便。
只需要对
DLL
进行一定的升级,就能支持很多的控件。
//界面描述语言示例
窗口 主窗口<类型 = 窗口类型_通用,标题="O界面设计语言示例",边框=0,/*背景色=0xFF1111,右下背景色=0x001180,背景图片="background.bmp",*/宽度=500,高度=500> /*普通窗口*/
{
事件映射<事件_窗口_创建,主窗口创建>; //表示当"事件_窗口_创建"这个事件发生时,"主窗口创建"这个函数将被调用
事件映射<事件_窗口_关闭,主窗口关闭>; //表示当"事件_窗口_关闭"这个事件发生时,"主窗口关闭"这个函数将被调用
层 第一层
{
控件 ImageList<类型=控件_图像列表,位图="工具图标.bmp",/*掩码位图 = "",*/颜色位=32,宽度=16,高度=16,标识号=10>
/*控件 Menu<类型=控件_菜单,菜单项类型=0,图像列表标识号=10,主菜单=1> //主菜单
{
控件 SubMenu1<类型=控件_菜单,菜单项类型=1,标题="文件(&F)"> //子菜单
{
控件 Menu_New<类型=控件_菜单,菜单项类型=2,标题="新建(&N)",标识号=100> //菜单子项
控件 Menu_Open<类型=控件_菜单,菜单项类型=2,标题="打开(&O)",标识号=101> //菜单子项
控件 Menu_Save<类型=控件_菜单,菜单项类型=2,标题="保存(&S)",标识号=102> //菜单子项
控件 Menu_Split<类型=控件_菜单,菜单项类型=3> //菜单分隔条
控件 Menu_Exit<类型=控件_菜单,菜单项类型=2,标题="退出(&E)",标识号=103> //菜单子项
}
控件 SubMenu2<类型=控件_菜单,菜单项类型=1,标题="编辑(&E)"> //子菜单
{
控件 Menu_Copy<类型=控件_菜单,菜单项类型=2,标题="复制(&C)",标识号=104> //菜单子项
控件 Menu_Paste<类型=控件_菜单,菜单项类型=2,标题="粘贴(&P)",标识号=105> //菜单子项
}
}*/
控件 Menu2<类型=控件_菜单,菜单项类型=0>//主菜单
{
事件映射<事件_菜单_单击,菜单处理>;
控件 SubMenu1<类型=控件_菜单,菜单项类型=1,标题="文件(&F)",标识号=200> //子菜单
{
控件 Menu_New<类型=控件_菜单,菜单项类型=2,标题="新建(&N)",标识号=201> //菜单子项
控件 Menu_Open<类型=控件_菜单,菜单项类型=2,标题="打开(&O)",标识号=202> //菜单子项
控件 Menu_Save<类型=控件_菜单,菜单项类型=2,标题="保存(&S)",标识号=203> //菜单子项
控件 Menu_Split<类型=控件_菜单,菜单项类型=3> //菜单分隔条
控件 Menu_Exit<类型=控件_菜单,菜单项类型=2,标题="退出(&E)",标识号=204> //菜单子项
}
控件 SubMenu2<类型=控件_菜单,菜单项类型=1,标题="编辑(&E)",标识号=300> //子菜单
{
控件 Menu_Copy<类型=控件_菜单,菜单项类型=2,标题="复制(&C)",标识号=301> //菜单子项
控件 Menu_Paste<类型=控件_菜单,菜单项类型=2,标题="粘贴(&P)",标识号=302> //菜单子项
}
}
/*
控件 ToolBar<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=200,图像序号=0,菜单标识号=200,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=201,图像序号=0,菜单标识号=300,标题="打开",提示文本="打开文件">
}
*/
控件 Rebar<类型=控件_多重工具条,坐标X = 0,坐标Y = 0,宽度=500,高度=30,锚点=顶边锁定>
{
控件 ToolBar1<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
//这里引用的菜单标识号必须为子菜单,不能是第一级菜单
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=200,图像序号=0,菜单标识号=200,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=201,图像序号=0,菜单标识号=300,标题="打开",提示文本="打开文件">
}
控件 ToolBar2<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=300,图像序号=0,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=301,图像序号=0,标题="打开",提示文本="打开文件">
}
}
//控件 Animation<类型=OCT_Animation,标题="确定",坐标X = 0,坐标Y = 0,宽度=50,高度=30>
控件 Button<类型=控件_按钮,标题="确定",坐标X = 300,坐标Y = 80,宽度=50,高度=30,图标="button.ico",边框=边框_默认,锚点=右底边锁定>
{
事件映射<事件_按钮_单击,InterFaceFun>;
}
控件 CheckBox<类型=控件_复选按钮,标题="确定",坐标X = 10,坐标Y = 40,宽度=50,高度=30>
控件 ComboBox<类型=控件_组合框,标题="组合框",坐标X = 10,坐标Y = 80,宽度=100,高度=120,组合框类型=组合框_下拉可编辑>
{
控件 ComboBoxItem1<类型=控件_列表框项,标题="组合框第1项">
控件 ComboBoxItem2<类型=控件_列表框项,标题="组合框第2项">
控件 ComboBoxItem3<类型=控件_列表框项,标题="组合框第3项">
控件 ComboBoxItem4<类型=控件_列表框项,标题="组合框第4项">
控件 ComboBoxItem5<类型=控件_列表框项,标题="组合框第5项">
控件 ComboBoxItem6<类型=控件_列表框项,标题="组合框第6项">
}
//控件 DateTimePicker<类型=OCT_DateTimePicker,标题="确定",坐标X = 0,坐标Y = 120,宽度=50,高度=30>
控件 Edit<类型=控件_编辑框,标题="确定",坐标X = 10,坐标Y = 120,宽度=50,高度=30>
控件 GroupBox<类型=控件_分组框,标题="确定",坐标X = 10,坐标Y = 150,宽度=70,高度=50>
//控件 HotKey<类型=OCT_HotKey,标题="确定",坐标X = 0,坐标Y = 210,宽度=50,高度=30>
//控件 IpAddress<类型=OCT_IpAddress,标题="确定",坐标X = 0,坐标Y = 240,宽度=50,高度=30>
控件 ListBox<类型=控件_列表框,标题="确定",坐标X = 10,坐标Y = 200,宽度=100,高度=100>
{
控件 ListBoxItem1<类型=控件_列表框项,标题="列表框第1项">
控件 ListBoxItem2<类型=控件_列表框项,标题="列表框第2项">
控件 ListBoxItem3<类型=控件_列表框项,标题="列表框第3项">
控件 ListBoxItem4<类型=控件_列表框项,标题="列表框第4项">
控件 ListBoxItem5<类型=控件_列表框项,标题="列表框第5项">
控件 ListBoxItem6<类型=控件_列表框项,标题="列表框第6项">
}
控件 ListView<类型=控件_列表视图,标题="确定",坐标X = 10,坐标Y = 320,宽度=300,高度=100,列表类型=列表视图_报告,小图像列表标识号=10,报告图标=1>
{
控件 Header<类型=控件_列表头>
{
控件 HeaderItem1<类型=控件_列表头项,标题="第一列",对齐=0,宽度=60> //左对齐
控件 HeaderItem2<类型=控件_列表头项,标题="第二列",对齐=1,宽度=60> //右对齐
控件 HeaderItem3<类型=控件_列表头项,标题="第三列",对齐=2,宽度=60> //居中对齐
}
控件 ListViewItem1<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第一行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第一行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第一行第三列",图像序号=0>
}
控件 ListViewItem2<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第二行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第二行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第二行第三列",图像序号=0>
}
控件 ListViewItem3<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第三行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第三行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第三行第三列",图像序号=0>
}
}
//控件 MonthCalendar<类型=OCT_MonthCalendar,标题="确定",坐标X = 10+60,坐标Y = 10+40,宽度=100,高度=30>
//控件 Picture<类型=OCT_Picture,标题="确定",坐标X = 10+60,坐标Y = 10+2*40,宽度=50,高度=30>
控件 ProgressBar<类型=控件_进度条,标题="确定",坐标X = 10,坐标Y = 280,宽度=100,高度=30>
控件 RadioButton<类型=控件_单选按钮,标题="确定",坐标X = 10,坐标Y = 320,宽度=50,高度=30>
控件 ScrollBar<类型=控件_滚动条,标题="确定",坐标X = 10,坐标Y = 390,宽度=100,高度=20>
控件 Slider<类型=控件_滑杆,标题="确定",坐标X = 160,坐标Y = 10,宽度=100,高度=30>
控件 Spin<类型=控件_上下按钮,标题="确定",坐标X = 160,坐标Y = 50,宽度=25,高度=30>
控件 StaticText<类型=控件_静态文本,标题="确定",坐标X = 160,坐标Y = 90,宽度=50,高度=30>
/*控件 Tab<类型=控件_标签,标题="确定",坐标X = 160,坐标Y = 130,宽度=200,高度=200>
{
控件 TabPage1<类型=控件_标签页,标题="第一页">
{
控件 Button<类型=控件_按钮,标题="确定",坐标X = 30,坐标Y = 30,宽度=50,高度=30,图标="button.ico",边框=边框_默认,锚点=右底边锁定>
{
事件映射<事件_按钮_单击,InterFaceFun>;
}
}
控件 TabPage2<类型=控件_标签页,标题="第二页">
{
控件 CheckBox<类型=控件_复选按钮,标题="确定",坐标X = 30,坐标Y = 80,宽度=50,高度=30>
}
控件 TabPage3<类型=控件_标签页,标题="第三页">
}
*/
//控件 TreeView<类型=控件_树视图,标题="确定",坐标X = 160,坐标Y = 170,宽度=50,高度=30>
控件 TreeView1<类型=控件_树视图,坐标X = 160,坐标Y = 170,宽度=200,高度=100,图像列表标识号=10>
{
控件 TreeViewItem1<类型=控件_树项,标题="第1项",图像序号=0>
控件 TreeViewItem2<类型=控件_树项,标题="第2项",图像序号=0>
{
控件 TreeViewItem21<类型=控件_树项,标题="第21项",图像序号=0,选中图像序号=0>
控件 TreeViewItem22<类型=控件_树项,标题="第22项",图像序号=0,选中图像序号=0>
{
控件 TreeViewItem221<类型=控件_树项,标题="第221项",图像序号=0>
}
}
}
控件 TreeView2<类型=控件_树视图,坐标X = 160,坐标Y = 274,宽度=200,高度=100>
//控件 TreeView3<类型=控件_树视图,坐标X = 160,坐标Y = 378,宽度=200,高度=100>
控件 Splitter1<类型=控件_切分条,坐标X = 160,坐标Y = 270,宽度=200,高度=3,切分控件1="TreeView1",切分控件2="TreeView2">
//控件 Splitter2<类型=控件_切分条,坐标X = 160,坐标Y = 374,宽度=200,高度=3,切分控件1="TreeView2",切分控件2="TreeView3">
控件 StatusBar<类型=控件_状态条,坐标X = 0,坐标Y = 440,宽度=492,高度=25,锚点=底边锁定>
{
控件 StatusBarPart1<类型=控件_状态条分区,宽度=100,标题="准备就绪">
控件 StatusBarPart2<类型=控件_状态条分区,文本颜色=0x00ff00ff,宽度=100,图标="button.ico",标题="状态条分区测试">
}
}
}
根据上面的界面定义可以得到如下窗口:
(不能上传图片)
一、原理
简单地说可以认为是一个软件界面
平台,这个语言只专注与界面生成,并能很好地实现界面与主程序的交互。
界面描述语言组件实现了根据脚本的定义代码进行界面的创建、管理及交互。
交互是双向的,界面通过控件的事件与主程序进行交互,而控件的响应事件是相对固定的。
只要在主程序中使用
”
AddInterfaceFunction
(
主窗口关闭
);
”
将函数添加到函数表中,都能在界面中将某一事件与这个函数进行映射。
若主程序要操控界面元素,可以使用“主窗口.
面板一.
编辑控件1
”这样的命名方式进行引用。
(不能上传图片)
二、主要优点
1
、实现程序功能与界面的分离,将程序员从复杂的界面开发中解脱出来,让程序员能专注于程序的功能开发。
2
、大大降低了软件界面开发的难度,以往开发软件界面必须要有专业的程序员开发才能实现,而使用界面设计语言只需要简单学习一下这个语言的语法(语法非常简单),就能进行界面开发,根本不需要很专业的程序开发技术。界面开发可以让更专业的美工人员来实现,即能大大缩短软件的开发周期,又能使软件更加美观专业。
3
、实现了软件的功能与界面的无关性,可以使软件自由地换肤(就像人穿衣服一样),大大提高了软件的灵活性和趣味性。
4
、平台无关性。
界面脚本即可以用在
Windows
平台下,也可以用在
Linux
下,非常方便软件的移植。
5
、语言无关性。
无论你是用
VC
、
VB
、
Delphi
还是
C#
开发程序,都可以使用界面设计语言所设计出来的界面。
6
、升级方便。
只需要对
DLL
进行一定的升级,就能支持很多的控件。
//界面描述语言示例
窗口 主窗口<类型 = 窗口类型_通用,标题="O界面设计语言示例",边框=0,/*背景色=0xFF1111,右下背景色=0x001180,背景图片="background.bmp",*/宽度=500,高度=500> /*普通窗口*/
{
事件映射<事件_窗口_创建,主窗口创建>; //表示当"事件_窗口_创建"这个事件发生时,"主窗口创建"这个函数将被调用
事件映射<事件_窗口_关闭,主窗口关闭>; //表示当"事件_窗口_关闭"这个事件发生时,"主窗口关闭"这个函数将被调用
层 第一层
{
控件 ImageList<类型=控件_图像列表,位图="工具图标.bmp",/*掩码位图 = "",*/颜色位=32,宽度=16,高度=16,标识号=10>
/*控件 Menu<类型=控件_菜单,菜单项类型=0,图像列表标识号=10,主菜单=1> //主菜单
{
控件 SubMenu1<类型=控件_菜单,菜单项类型=1,标题="文件(&F)"> //子菜单
{
控件 Menu_New<类型=控件_菜单,菜单项类型=2,标题="新建(&N)",标识号=100> //菜单子项
控件 Menu_Open<类型=控件_菜单,菜单项类型=2,标题="打开(&O)",标识号=101> //菜单子项
控件 Menu_Save<类型=控件_菜单,菜单项类型=2,标题="保存(&S)",标识号=102> //菜单子项
控件 Menu_Split<类型=控件_菜单,菜单项类型=3> //菜单分隔条
控件 Menu_Exit<类型=控件_菜单,菜单项类型=2,标题="退出(&E)",标识号=103> //菜单子项
}
控件 SubMenu2<类型=控件_菜单,菜单项类型=1,标题="编辑(&E)"> //子菜单
{
控件 Menu_Copy<类型=控件_菜单,菜单项类型=2,标题="复制(&C)",标识号=104> //菜单子项
控件 Menu_Paste<类型=控件_菜单,菜单项类型=2,标题="粘贴(&P)",标识号=105> //菜单子项
}
}*/
控件 Menu2<类型=控件_菜单,菜单项类型=0>//主菜单
{
事件映射<事件_菜单_单击,菜单处理>;
控件 SubMenu1<类型=控件_菜单,菜单项类型=1,标题="文件(&F)",标识号=200> //子菜单
{
控件 Menu_New<类型=控件_菜单,菜单项类型=2,标题="新建(&N)",标识号=201> //菜单子项
控件 Menu_Open<类型=控件_菜单,菜单项类型=2,标题="打开(&O)",标识号=202> //菜单子项
控件 Menu_Save<类型=控件_菜单,菜单项类型=2,标题="保存(&S)",标识号=203> //菜单子项
控件 Menu_Split<类型=控件_菜单,菜单项类型=3> //菜单分隔条
控件 Menu_Exit<类型=控件_菜单,菜单项类型=2,标题="退出(&E)",标识号=204> //菜单子项
}
控件 SubMenu2<类型=控件_菜单,菜单项类型=1,标题="编辑(&E)",标识号=300> //子菜单
{
控件 Menu_Copy<类型=控件_菜单,菜单项类型=2,标题="复制(&C)",标识号=301> //菜单子项
控件 Menu_Paste<类型=控件_菜单,菜单项类型=2,标题="粘贴(&P)",标识号=302> //菜单子项
}
}
/*
控件 ToolBar<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=200,图像序号=0,菜单标识号=200,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=201,图像序号=0,菜单标识号=300,标题="打开",提示文本="打开文件">
}
*/
控件 Rebar<类型=控件_多重工具条,坐标X = 0,坐标Y = 0,宽度=500,高度=30,锚点=顶边锁定>
{
控件 ToolBar1<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
//这里引用的菜单标识号必须为子菜单,不能是第一级菜单
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=200,图像序号=0,菜单标识号=200,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=201,图像序号=0,菜单标识号=300,标题="打开",提示文本="打开文件">
}
控件 ToolBar2<类型=控件_工具条,图像列表标识号=10,坐标X=0,坐标Y=0,宽度=300,高度=24,显示提示=1>
{
控件 ToolBarButton1<类型=控件_工具条按钮,标识号=300,图像序号=0,标题="打开",提示文本="打开文件">
控件 ToolBarButton2<类型=控件_工具条按钮,标识号=301,图像序号=0,标题="打开",提示文本="打开文件">
}
}
//控件 Animation<类型=OCT_Animation,标题="确定",坐标X = 0,坐标Y = 0,宽度=50,高度=30>
控件 Button<类型=控件_按钮,标题="确定",坐标X = 300,坐标Y = 80,宽度=50,高度=30,图标="button.ico",边框=边框_默认,锚点=右底边锁定>
{
事件映射<事件_按钮_单击,InterFaceFun>;
}
控件 CheckBox<类型=控件_复选按钮,标题="确定",坐标X = 10,坐标Y = 40,宽度=50,高度=30>
控件 ComboBox<类型=控件_组合框,标题="组合框",坐标X = 10,坐标Y = 80,宽度=100,高度=120,组合框类型=组合框_下拉可编辑>
{
控件 ComboBoxItem1<类型=控件_列表框项,标题="组合框第1项">
控件 ComboBoxItem2<类型=控件_列表框项,标题="组合框第2项">
控件 ComboBoxItem3<类型=控件_列表框项,标题="组合框第3项">
控件 ComboBoxItem4<类型=控件_列表框项,标题="组合框第4项">
控件 ComboBoxItem5<类型=控件_列表框项,标题="组合框第5项">
控件 ComboBoxItem6<类型=控件_列表框项,标题="组合框第6项">
}
//控件 DateTimePicker<类型=OCT_DateTimePicker,标题="确定",坐标X = 0,坐标Y = 120,宽度=50,高度=30>
控件 Edit<类型=控件_编辑框,标题="确定",坐标X = 10,坐标Y = 120,宽度=50,高度=30>
控件 GroupBox<类型=控件_分组框,标题="确定",坐标X = 10,坐标Y = 150,宽度=70,高度=50>
//控件 HotKey<类型=OCT_HotKey,标题="确定",坐标X = 0,坐标Y = 210,宽度=50,高度=30>
//控件 IpAddress<类型=OCT_IpAddress,标题="确定",坐标X = 0,坐标Y = 240,宽度=50,高度=30>
控件 ListBox<类型=控件_列表框,标题="确定",坐标X = 10,坐标Y = 200,宽度=100,高度=100>
{
控件 ListBoxItem1<类型=控件_列表框项,标题="列表框第1项">
控件 ListBoxItem2<类型=控件_列表框项,标题="列表框第2项">
控件 ListBoxItem3<类型=控件_列表框项,标题="列表框第3项">
控件 ListBoxItem4<类型=控件_列表框项,标题="列表框第4项">
控件 ListBoxItem5<类型=控件_列表框项,标题="列表框第5项">
控件 ListBoxItem6<类型=控件_列表框项,标题="列表框第6项">
}
控件 ListView<类型=控件_列表视图,标题="确定",坐标X = 10,坐标Y = 320,宽度=300,高度=100,列表类型=列表视图_报告,小图像列表标识号=10,报告图标=1>
{
控件 Header<类型=控件_列表头>
{
控件 HeaderItem1<类型=控件_列表头项,标题="第一列",对齐=0,宽度=60> //左对齐
控件 HeaderItem2<类型=控件_列表头项,标题="第二列",对齐=1,宽度=60> //右对齐
控件 HeaderItem3<类型=控件_列表头项,标题="第三列",对齐=2,宽度=60> //居中对齐
}
控件 ListViewItem1<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第一行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第一行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第一行第三列",图像序号=0>
}
控件 ListViewItem2<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第二行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第二行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第二行第三列",图像序号=0>
}
控件 ListViewItem3<类型=控件_列表项>
{
控件 ListViewSubItem1<类型=控件_列表子项,标题="第三行第一列",图像序号=0>
控件 ListViewSubItem2<类型=控件_列表子项,标题="第三行第二列",图像序号=0>
控件 ListViewSubItem3<类型=控件_列表子项,标题="第三行第三列",图像序号=0>
}
}
//控件 MonthCalendar<类型=OCT_MonthCalendar,标题="确定",坐标X = 10+60,坐标Y = 10+40,宽度=100,高度=30>
//控件 Picture<类型=OCT_Picture,标题="确定",坐标X = 10+60,坐标Y = 10+2*40,宽度=50,高度=30>
控件 ProgressBar<类型=控件_进度条,标题="确定",坐标X = 10,坐标Y = 280,宽度=100,高度=30>
控件 RadioButton<类型=控件_单选按钮,标题="确定",坐标X = 10,坐标Y = 320,宽度=50,高度=30>
控件 ScrollBar<类型=控件_滚动条,标题="确定",坐标X = 10,坐标Y = 390,宽度=100,高度=20>
控件 Slider<类型=控件_滑杆,标题="确定",坐标X = 160,坐标Y = 10,宽度=100,高度=30>
控件 Spin<类型=控件_上下按钮,标题="确定",坐标X = 160,坐标Y = 50,宽度=25,高度=30>
控件 StaticText<类型=控件_静态文本,标题="确定",坐标X = 160,坐标Y = 90,宽度=50,高度=30>
/*控件 Tab<类型=控件_标签,标题="确定",坐标X = 160,坐标Y = 130,宽度=200,高度=200>
{
控件 TabPage1<类型=控件_标签页,标题="第一页">
{
控件 Button<类型=控件_按钮,标题="确定",坐标X = 30,坐标Y = 30,宽度=50,高度=30,图标="button.ico",边框=边框_默认,锚点=右底边锁定>
{
事件映射<事件_按钮_单击,InterFaceFun>;
}
}
控件 TabPage2<类型=控件_标签页,标题="第二页">
{
控件 CheckBox<类型=控件_复选按钮,标题="确定",坐标X = 30,坐标Y = 80,宽度=50,高度=30>
}
控件 TabPage3<类型=控件_标签页,标题="第三页">
}
*/
//控件 TreeView<类型=控件_树视图,标题="确定",坐标X = 160,坐标Y = 170,宽度=50,高度=30>
控件 TreeView1<类型=控件_树视图,坐标X = 160,坐标Y = 170,宽度=200,高度=100,图像列表标识号=10>
{
控件 TreeViewItem1<类型=控件_树项,标题="第1项",图像序号=0>
控件 TreeViewItem2<类型=控件_树项,标题="第2项",图像序号=0>
{
控件 TreeViewItem21<类型=控件_树项,标题="第21项",图像序号=0,选中图像序号=0>
控件 TreeViewItem22<类型=控件_树项,标题="第22项",图像序号=0,选中图像序号=0>
{
控件 TreeViewItem221<类型=控件_树项,标题="第221项",图像序号=0>
}
}
}
控件 TreeView2<类型=控件_树视图,坐标X = 160,坐标Y = 274,宽度=200,高度=100>
//控件 TreeView3<类型=控件_树视图,坐标X = 160,坐标Y = 378,宽度=200,高度=100>
控件 Splitter1<类型=控件_切分条,坐标X = 160,坐标Y = 270,宽度=200,高度=3,切分控件1="TreeView1",切分控件2="TreeView2">
//控件 Splitter2<类型=控件_切分条,坐标X = 160,坐标Y = 374,宽度=200,高度=3,切分控件1="TreeView2",切分控件2="TreeView3">
控件 StatusBar<类型=控件_状态条,坐标X = 0,坐标Y = 440,宽度=492,高度=25,锚点=底边锁定>
{
控件 StatusBarPart1<类型=控件_状态条分区,宽度=100,标题="准备就绪">
控件 StatusBarPart2<类型=控件_状态条分区,文本颜色=0x00ff00ff,宽度=100,图标="button.ico",标题="状态条分区测试">
}
}
}
根据上面的界面定义可以得到如下窗口:
(不能上传图片)
相关文章推荐
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)
- JEECG V3.0版本 (工作流在线定义+UI快速开发库+代码生成器) 全新架构技术,漂亮的界面+智能代码生成+智能工作流
- 界面与程序分离---MIS开发新方法
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(二)
- iOS Siri的语言识别程序的开发与实践(Nuance技术)
- 微信 开发 聊天机器人设计方案 java语言 程序和数据库代码
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一) - 文顶顶
- 小程序开发实战:实现九宫格界面的导航的代码实现
- 网络采集软件核心技术剖析系列(7)---如何使用C#语言搭建程序框架(经典Winform界面,顶部菜单栏,工具栏,左边树形列表,右边多Tab界面)
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程
- 界面与程序分离--MIS开发新方法
- iOS开发之类Siri的语言识别程序的开发与实践(Nuance技术)