DuiVision的对话框类是CDlgBase。
代码中如果需要创建一个对话框,一般建议使用DuiSystem类中封装的若干对话框相关的函数来操作,包括创建对话框、删除对话框、根据对话框名获取对话框指针、显示通用对话框。
对话框的属性如下:
属性名 | 类型 | 说明 |
---|---|---|
width | 数字 | 窗口宽度 |
height | 数字 | 窗口高度 |
resize | 0|1 | 1表示窗口可以改变大小 |
frame | 字符串 | 窗口的frame层图片,frame层是一个可选的半透明Alpha图片层,一般设置的这个图片是用于和背景图片进行Alpha混合,这一层的图片中每个像素都包含了自身颜色和透明度属性,通过透明度属性可以将背景图片进行半透明处理,默认只有主窗口设置了这个frame层图片,并且默认的frame图片是一个透明度渐变的PNG图片,从顶端的100%透明到底端的完全不透明 |
framesize | 数字 | 窗口的frame层图片的边框宽度,非九宫格方式有效 |
width-lt | 数字 | 窗口的frame层图片的九宫格左上角位置距离边框的宽度 |
height-lt | 数字 | 窗口的frame层图片的九宫格左上角位置距离边框的高度 |
width-rb | 数字 | 窗口的frame层图片的九宫格右下角位置距离边框的宽度 |
height-rb | 数字 | 窗口的frame层图片的九宫格右下角位置距离边框的高度 |
bkimg | 字符串 | 窗口的背景图片,如果指定了就使用指定的背景图片,否则使用全局设置的背景图片 |
crbk | 颜色 | 窗口的背景颜色,如果未指定背景图片,但指定了背景颜色,就使用指定的背景颜色,否则使用全局设置的背景图片 |
appwin | 0|1 | 此窗口是否会显示在Windows任务栏中显示,见下面的截图说明 |
translucent | 数字 | 窗口的整体透明度,取值范围是1-255,1表示全透明,255表示不透明 |
crtransparent | 颜色 | 设置窗口的背景透明颜色,RGB格式 |
shadow-size | 数字 | 窗口的算法阴影的宽度 |
img-shadow | 图片 | 窗口的图片阴影使用的图片 |
shadow-wlt | 数字 | 窗口的阴影层图片的九宫格左上角位置距离边框的宽度 |
shadow-hlt | 数字 | 窗口的阴影层图片的九宫格左上角位置距离边框的高度 |
shadow-wrb | 数字 | 窗口的阴影层图片的九宫格右下角位置距离边框的宽度 |
shadow-hrb | 数字 | 窗口的阴影层图片的九宫格右下角位置距离边框的高度 |
topmost | 0|1 | 窗口是否显示在所有窗口的最前面(整个桌面范围内) |
说明:
1) 九宫格方式frame层的说明:对于复杂的背景frame层图片,其所有边框宽度并不是固定的,但一般都可以用九宫格方式来切分,就是把背景frame图片横向、纵向各用两条线切分,一共切分成九部分,应用时候四个角的图片大小是按照原始大小应用到窗口中的,其余几部分都会进行拉伸,对于这种方式,只要描述出九宫格的左上角和右下角坐标位置就可以,对应的就是width-lt、height-lt、width-rb、height-rb这4个属性。
2)appwin属性的说明:下面截图中右边的任务栏窗口就是因为此窗口设置为appwin属性为1才会在任务栏中单独显示出来:
3)窗口阴影的说明:窗口支持两种方式的阴影,一种是图片阴影,一种是算法阴影。图片阴影是指定一个九宫格方式的阴影图片,类似下图的图片,需要指定九宫格的坐标,窗口绘制时候会将阴影图片作为一个单独的层画在窗口的下方外围区域。算法阴影是直接通过算法画一个阴影层,需要指定阴影的宽度。如果窗口属性中设置了图片阴影的图片,则优先使用图片阴影方式画阴影层,如果没有指定阴影图片,但设置了阴影宽度,则使用算法阴影方式画阴影层,如果图片和阴影宽度都没有指定,则不会画阴影层。
加了阴影的窗口效果如下:
CDlgBase的常用函数如下:
函数 | 是否虚函数 | 说明 |
---|---|---|
SetXmlFile | 否 | 设置对话框加载的xml文件 |
GetControl | 否 | 根据ID或name获取对应的控件指针 |
DoOK | 否 | 对话框的确定 |
DoCancel | 否 | 对话框的取消 |
DoClose | 否 | 对话框的关闭 |
SetControlVisible | 是 | 设置指定控件的可见性 |
SetControlDisable | 是 | 设置指定控件是否禁用 |
OpenDlgPopup | 否 | 打开一个弹出框 |
CloseDlgPopup | 否 | 关闭弹出框 |
DuiVision开源代码下载地址(github):https://github.com/blueantst/DuiVision
蓝蚂蚁工作室主页:http://www.blueantstudio.net
DuiVision QQ群:325880743
微信公众号:blueantstudio 或搜索 蓝蚂蚁工作室
原文地址:http://blog.csdn.net/oceanheart/article/details/46449827