下拉框控件
用于在 wndproc 回调中提前调用默认消息回调函数,
所有窗口和控件定义了 wndproc 回调以后会自动创建这个函数,
调用此函数以后,wndproc 必须指定非 null 返回值,
以避免再次重复调用默认回调函数
控件所在的父窗口(指win.form对象)
添加到组合框,
支持0x100/*_CBS_SORT*/排序
用于onEditChange事件内部显示自动完成列表
此函数会在显示列表后保持输入文本与光标不变
仅适用于dropdown模式
items参数使用一个字符串数组指定要显示的列表项,
@selIndex指定选项索引,不指定时默认为1
底部坐标
是否捕获全局鼠标消息
运行时类名
清除组合框所有内容
关闭控件窗口
设计时类名
列表项数目
删除当前选中项
类似dir命令,列出指定目录下匹配的文件,支持通配符
参数@2可指定选项,默认为 _DDL_READWRITE
是否禁用
返回下拉控件编辑框
查找列表项
精确查找指定的项
找不到返回0
控件客户区块位置(::RECT结构体)
控件字体(::LOGFONT结构体)
返回父窗口
返回相对坐标,宽,高
x,y,cx,cy=win.getPos(hwnd)
控件区块位置(::RECT结构体)
控件屏幕区块位置(::RECT结构体)
高度
控件是否隐藏
控件句柄
控件ID
返回COMBOBOXINFO结构体,
关于此结构体请查阅MSDN
默认添加到开始处,
-1表示添加到尾部
不支持0x100/*_CBS_SORT*/排序
使窗口绘图区无效
使窗口绘图区无效
不刷新背景
获取或设置组合框列表,属性值为字符串数组,
仅在属性面板设置初始化items属性时初始化selIndex为1,
代码中动态修改items后请自行指定selIndex,
如果自动指定了你不想要的selIndex,这会增加不必要的重绘。
左侧坐标
只写属性,修改最大允许输入的文本长度,
如果设为0,则设定为默认长度0x7FFFFFFE,
必须在控件初始化属性中启用横向滚动条,该属性才能生效
返回下拉控件列表框
设置或获取下拉列表最小显示项目数,
请在设计属性中启用垂直滚动条。
如果不想多点一下,可如下改进此属性源码:
util.metaProperty.extend(win.ui.ctrl.combobox,{
minVisible = {
_set = function( v ){
::SendMessageInt(owner.hwnd , 0x1701/*_CB_SETMINVISIBLE*/,v,0);
}
}
})
修改窗口样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS 前缀的常量
@add 用数值指定要添加的样式,可使用 WS 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码
修改窗口扩展样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS_EX 前缀的常量
@add 用数值指定要添加的样式,可使用 WS_EX 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码
comboboxObject.onCancel = function(){
/*响应事件,用户未确认选项且且下拉框即将关闭
例如用户点击其他控件关闭下拉列表或直接关闭窗口*/
}
comboboxObject.onCloseUp = function(){
/*下拉列表隐藏时触发此事件*/
}
comboboxObject.onDropDown = function(){
/*弹出下拉列表前触发此事件
用代码调用 showDropDown 函数也会触发此事件*/
}
comboboxObject.onEditChange = function(){
/*响应事件,输入框中的文本已变更,
只有用户输入时才会触发,
切换选项或使用代码修改text属性不会触发
注意使用text属性取最新值*/
}
comboboxObject.onFocusGot = function(){
/*下拉框获得焦点时触发此事件*/
}
comboboxObject.onFocusLost = function(){
/*下拉框失去焦点时触发此事件*/
}
comboboxObject.onListChange = function(){
/*改变当前选项触发此事件。
在下拉框上按方向键调整当前选项会触发此事件,
在选项上回车确认选项时,如果选项已改变则会触发此事件,
如果回车操作未改变选项仅触发 onOk 事件。
注意事件中要用 selText 属性取新的值
使用代码修改 selIndex 是不会触发*/
}
comboboxObject.onOk = function(){
/*响应事件,用户已确认选择指定选项,
注意事件中要用 selText 属性取新的值
单击选项或在选项上回车都会触发此事件(无论是否改变选项)*/
}
comboboxObject.oncommand = function(id,event){
var text = owner.selText;
/*响应事件,event比较常用的值:
_CBN_SELCHANGE表示正在改变当前项,但下拉框还没有关闭
_CBN_SELENDOK表示已改变选项且下拉框即将关闭
注意事件中要用selText属性取新的值*/
}
创建悬浮窗口,
悬浮窗口仍然显示在原来的位置,
悬浮窗口如影随形的跟随父窗口移动或改变大小,控件原来的固定边距等参数仍然有效
此控件不建议指定参数
投递窗口消息到消息队列中
此函数用法请参考 ::User32.PostMessage
刷新
右侧坐标
获取或指定当前选中的项索引,属性值为数值,
设为null取消选项
读取或设置组合框当前选中文本
在onOk事件回调中获取最新值应当使用selText而不是text属性
获取或指定当前选中的文本,精确匹配
按文本前缀查找并选中项目,
自开始索引后面开始查找,默认值为0也就是开始处搜索
发送窗口消息
此函数用法请参考 ::User32.SendMessage
指定文本框文本为空时的显示的默认提示文本,
此函数会取消当前选中项,
XP系统不支持此函数、但调用不报错
设置文本为空的输入提示,
参数 @1 使用字符串指定提示内容。
此函数会自动设置控件 text 属性为空
设置焦点
指定LOGFONT字体对象,或逻辑字体句柄
comboboxObject.setFont(point=10;name="宋体");
改变父窗口
调整窗口位置或排序,所有参数可选
同时指定x,y坐标则移动位置
同时指定宽高则改变大小
指定插入位置(句柄或_HWND前缀常量)则调整Z序
设置控件区块位置(::RECT结构体)
设置控件屏幕区块位置(::RECT结构体)
显示控件
显示下拉列表
参数为false隐藏下拉列表
获取下一个支持tab控制焦点的控件
参数@1为true会自动移动焦点到该控件
参数@2为true则获取上一个控件,否则获取下一个控件
组合框当前输入文本
在onOk事件回调中获取最新值应当使用selText而不是text属性
外观主题,例如
winform.button.theme = "Explorer"
winform.button.theme = false
开启此控件的跨线程调用功能
顶部坐标
获取此属性返回首个可见项索引,
设置此属性为项目索引则滚动到该项可见。
项目起始索引为 1
重绘invalidate函数指定的区块
窗口是否有效,
窗口未关闭返回 true ,
窗口已关闭或正在关闭返回 false
宽度
_CBN_CLOSEUP=8
_CBN_DBLCLK=2
_CBN_DROPDOWN=7
_CBN_EDITCHANGE=5
_CBN_EDITUPDATE=6
_CBN_KILLFOCUS=4
_CBN_SELCHANGE=1
_CBN_SELENDCANCEL=0xA
_CBN_SELENDOK=9
_CBN_SETFOCUS=3