DuiVision开发教程(17)-对话框

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 或搜索 蓝蚂蚁工作室

时间: 2024-10-12 22:45:38

DuiVision开发教程(17)-对话框的相关文章

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

DuiVision开发教程(5)-事件处理类编写

使用DuiVision开发的界面程序中,除了界面的描述之外,最主要的工作就是业务逻辑的处理,为了将业务逻辑和界面展示能够更好的分离,DuiVision中定义了事件处理基类,所有的业务逻辑都应该写在派生的事件处理类中,并把事件处理对象注册到相应的对话框或控件上,这样对应的子控件有事件需要处理的时候,就会自动调用注册的事件处理对象的相应函数.事件处理类只要在处理函数中根据控件的ID或名字决定该做什么事情,写相应的处理代码就可以.事件处理类中同时提供了一些函数方便根据ID或名字获取到对应的控件对象,并

DuiVision开发教程(16)-区域控件

DuiVision的area控件(类名是CArea)可以设置区域的渐变透明度,不能响应鼠标事件,此控件的原理是画一个填充的透明度渐变矩形区域,透明度从矩形区域顶部究竟部均匀渐变. 控件的属性包含: 属性名 类型 说明 color 颜色 矩形区域的颜色 begin-transparent 字体 矩形区域顶部的起始透明度 end-transparent 字符串 矩形区域底部的终止透明度 DuiVision Demo程序的非常多界面都用到了area控件来实现渐变效果,比如,例如以下的登录对话框以下的渐

DuiVision开发教程(19)-菜单

DuiVision菜单类是CDuiMenu,有两种显示的位置,一种是在窗口顶部某个按钮点击后可以下拉一个菜单,另一种是托盘图标的右键菜单. 窗口中的菜单定义方式是xml文件中设置某个按钮的action属性,以menu:开头,后面是菜单的XML文件名或XML定义名,例如下面这样定义: <imgbtn name="button.menu" pos="-110,0,-77,29" skin="IDB_BT_MENU" tip="菜单&q

DuiVision开发教程(1)-创建DuiVision工程

DuiVision的源代码工程有两种类型:主程序和插件工程,可以通过人工方式创建DuiVision工程,也可以通过Visual Studio向导自动创建工程. 人工创建主程序的方法 1.创建一个基于DuiVision的界面程序是比较简单的,在VC中创建一个MFC对话框工程,注意工程要使用Unicode库: 工程创建之后,需要将默认对话框资源中的几个按钮和文字都删除,变成一个干净的对话框资源: 2.设置DuiVision的头文件和lib文件目录 将DuiVision的头文件和lib文件放在某个位置

DuiVision开发教程(14)-DUI控件基础类

DuiVision所有控件的基类是CControlBase类. CControlBase的属性如下表: 属性名 类型 说明 show 1|0 控件是否可见 disable 1|0 控件是否被禁用 pos 位置 控件的位置坐标,可以是左上角坐标,例如10,10,也可以是左上角+右下角坐标,例如10,10,200,100.支持正值和负值,正值表示从父控件左上角开始计算的值,负值表示从父控件右下角开始计算的值,例如-10,10表示从右边往左10像素,从上往下10像素的位置.也可以支持从父控件中间开始计

DuiVision开发教程(13)-DUI基类

DuiVision所有对象的基类是CDuiObject,包括控件类.对话框.菜单等都是由此派生的.此类没有对应的控件名,主要函数的说明如下: 函数 是否虚函数 说明 IsClass 是 判断是否此类 GetObjectClass 是 获取类名 BaseObjectClassName 是 获取基类名 GetID 否 获取对象ID GetName 否 获取对象名字 IsThisObject 否 根据ID或名字判断是否此对象,ID或名字任意一个匹配上就可以 RegisterHandler 否 注册事件

DuiVision开发教程(3)-XML资源文件定义介绍

全局资源定义-resource.xml 基于DuiVision界面库的程序,需要有一个默认的资源定义XML文件,此文件默认的位置是exe文件所在路径下的xml\resource.xml文件,如果使用了zip压缩文件来保存所有资源文件,则此文件的位置是在压缩包中的xml\resource.xml文件.此文件中可以定义程序的全局配置.XML文件.字体.图片.文字等资源,示例如下: <?xml version="1.0" encoding="utf-8"?>

DuiVision开发教程(4)-使用zip资源

从ZIP压缩文件中加载资源 DuiVision支持将所有的图片和XML资源文件放在一个zip格式的压缩文件中,如果使用zip格式的资源文件,需要在主程序代码中初始化部分指定使用的压缩文件的文件名. 如果使用zip资源文件,则resource.xml文件的位置默认是放在zip文件中的xml子目录下.建议zip文件按照xml.skins这样的子目录来压缩,见下面的压缩文件示例: 有zip资源文件的情况下,资源文件的加载并不一定是加载的zip文件中的内容,加载的优先级如下: 1)如果只有zip压缩文件