DuiVision所有控件的基类是CControlBase类。
CControlBase的属性如下表:
属性名 | 类型 | 说明 |
---|---|---|
show | 1|0 | 控件是否可见 |
disable | 1|0 | 控件是否被禁用 |
pos | 位置 | 控件的位置坐标,可以是左上角坐标,例如10,10,也可以是左上角+右下角坐标,例如10,10,200,100。 支持正值和负值,正值表示从父控件左上角开始计算的值,负值表示从父控件右下角开始计算的值,例如-10,10表示从右边往左10像素,从上往下10像素的位置。 也可以支持从父控件中间开始计算的坐标,用|表示中间位置,例如|10,|-10表示横向中间向右10像素,纵向中间向上10像素的位置。 width 数字 控件宽度 height 数字 控件高度 |
action | 字符串 | 控件的动作字符串,表示控件点击之后执行的动作,有几种类型: 1、dlg:xxxx,表示显示指定的对话框,显示的对话框可以是一个xml定义文件,也可以是一个定义(从resource资源定义文件中查找具体的xml定义文件) 2、menu:xxxx.xml,表示显示指定的菜单,菜单定义文件是指定的xml文件 3、link:url,表示使用浏览器或其他默认程序打开指定的链接或文件 4、run:xxx.exe|param,表示运行指定的程序,可以传递命令行,执行的程序后面用|分隔,|之后的表示传递的命令行参数 |
menupos | 位置 | 菜单显示的位置坐标,必须是x,y,dx,dy的形式(dx,dy为可选参数)。 x,y表示菜单左上角坐标,例如10,10。 支持正值和负值,正值表示从控件左上角开始计算的值,负值表示从父控件右下角开始计算的值,例如-10,10表示从右边往左10像素,从上往下10像素的位置。 也可以支持从控件中间开始计算的坐标,用|表示中间位置,例如|10,|-10表示横向中间向右10像素,纵向中间向上10像素的位置。 dx,dy是可选内容,表示菜单的显示方向,默认是正值,如果dx是负值,表示向左侧的显示方向,如果dy是负值,表示向上的显示方向。 |
tip | 字符串 | 定义鼠标移动到空间上过一段时间会出现的tip提示信息,tip信息只有对话框的基础控件可以定义,其他控件即使定义了也没有效果 |
tip-width | 数字 | Tooltip的宽度,默认为0,这个值只有设置为大于0才会有效 |
response | 1|0 | 控件是否可以响应鼠标事件,如果不希望控件响应鼠标事件,可以设置此属性为0 |
tabstop | 1|0 | 控件是否可以响应焦点切换的事件,也就是按键盘tab键能否将焦点切换到此控件 |
taskmsg | 1|0 | 调用事件响应函数时候是否采用任务方式,对于可能产生阻塞或耗时比较长的处理操作应该采用任务方式处理,避免造成界面不响应或界面异常 |
img-ecm | 1|0 | 是否使用图片自身的颜色管理信息,默认为0,表示加载图片文件时候使用系统的颜色管理信息而不使用图片自身的颜色管理信息,因为XP SP1以前的操作系统自带的GDI+模块可能不支持图片自身的颜色管理信息,因此如果设置为1的话,在XP SP1以前的系统下运行图片可能无法正常显示 |
shortcut | 字符串 | 定义控件的快捷键,快捷键字符串参考第二章的相应章节说明,当按下对应快捷键的时候,会自动触发此控件产生一个鼠标按下和鼠标放开的事件,模拟点击了此控件 |
cursor | 字符串 | 定义控件的鼠标光标,如果定义,则鼠标移动到控件范围内会显示指定的鼠标光标,目前支持系统预定义的几个鼠标光标,分别是: arrow - 箭头; wait – 沙漏等待; cross – 十字; sizewe – 双箭头指向东西; sizens – 双箭头指向南北; hand – 手型; help – 箭头+问号 |
duimsg | 字符串 | 指定控件会发送哪些DUI消息,消息名之间用|分隔,例如:”msg1|msg2|msg3”。 目前支持的消息名包括: mousemove – 发送鼠标移动和鼠标离开控件的消息 mouseldown - 发送鼠标左键按下的消息 mouselup - 发送鼠标左键放开的消息 mouseldblclk - 发送鼠标左键双击的消息 keydown – 发送键盘按下的消息 |
CControlBase的常用函数如下:
函数 | 是否虚函数 | 说明 |
---|---|---|
GetParent | 否 | 获取父控件对象指针 |
GetControl | 否 | 根据ID或name获取控件对象指针 |
AddControl | 否 | 添加控件 |
RemoveControl | 否 | 删除控件 |
GetControls | 否 | 获取所有控件对象的列表 |
GetParentDialog | 否 | 获取控件所在的对话框的指针 |
OnMessage | 是 | 控件的消息处理函数 |
SendMessage | 否 | 发送通知消息 |
SetRect | 是 | 设置控件的位置 |
GetRect | 是 | 获取控件的位置 |
OnPositionChange | 是 | 刷新控件的位置信息 |
SetPosStr | 否 | 设置控件的位置字符串 |
SetVisible | 否 | 设置控件的可见性 |
GetVisible | 否 | 获取控件的可见性 |
SetControlWndVisible | 是 | 设置控件中的Windows原生控件是否可见的状态,由Panel对象中调用,对于edit、activex等使用了Windows原生控件的类需要重载此函数,并正确的进行原生控件的显示和隐藏 |
SetDisable | 否 | 设置控件是否禁用 |
GetDisable | 否 | 获取控件是否禁用 |
SetTabStop | 否 | 设置控件是否能响应tab键 |
IsTabStop | 否 | 获取控件是否能响应tab键 |
SetTooltip | 否 | 设置控件的tip信息 |
GetTooltip | 否 | 获取控件的tip信息 |
SetAction | 否 | 设置控件的动作字符串 |
GetAction | 否 | 获取控件的动作字符串 |
SetRresponse | 否 | 获取控件是否可响应鼠标事件 |
GetRresponse | 否 | 设置控件是否可响应鼠标事件 |
PtInRect | 是 | 判断坐标是否在控件范围内 |
UpdateControl | 否 | 刷新控件显示 |
SetWindowFocus | 是 | 设置窗口焦点 |
OnFocus | 否 | 设置此控件是否为当前焦点控件 |
IsFocusControl | 否 | 判断此控件是否为当前焦点控件 |
OpenDlgPopup | 否 | 打开弹出对话框 |
CloseDlgPopup | 否 | 关闭弹出对话框 |
DuiVision开源代码下载地址(github):https://github.com/blueantst/DuiVision
蓝蚂蚁工作室主页:http://www.blueantstudio.net
DuiVision QQ群:325880743
微信公众号:blueantstudio 或搜索 蓝蚂蚁工作室