下拉框控件
用于在 wndproc 回调中提前调用默认消息回调函数,
所有窗口和控件定义了 wndproc 回调以后会自动创建这个函数,
调用此函数以后,wndproc 必须指定非 null 返回值,
以避免再次重复调用默认回调函数
返回创建控件的容器窗口(win.form对象),所有窗口控件都拥有此只读属性。
对于使用窗体设计器创建的窗口,也就是返回设计时窗体容器。
即使子窗口移除子窗口样式、更改父子关系,或以 orphanWindow显示,
控件的 _parentForm 始终都不会改变
添加到组合框,
支持0x100/*_CBS_SORT*/排序
comboboxObject.adjust = function( cx,cy,wParam ) {
/*父窗口改变大小后会自动触发此事件函数。
注意 onSize 是 adjust 事件的别名,作用相同。
所有 win.form 创建的窗体和控件都支持 adjust 事件,
重复赋值 adjust 会追加事件触发器而非替换原来的值。
cx 参数为窗口客户区宽度,cy 参数为窗口客户区高度,
wParam 参数来自 _WM_SIZE 消息的 wParam 参数,一般不用管。
一般不建议添加一个 wndproc 仅仅是为了处理 _WM_SIZE 消息,
定义 adjust 事件是更好的选择。
如果主动调用此函数,则检查并执行所有之前添加的 adjust 事件函数。
省略调用参数时 cx,cy 参数默认设为窗口大小*/
};
用于onEditChange事件内部显示自动完成列表
此函数会在显示列表后保持输入文本与光标不变
仅适用于dropdown模式
items参数使用一个字符串数组指定要显示的列表项,
@selIndex指定选项索引,不指定时默认为1
底部坐标
是否捕获全局鼠标消息
运行时类名
清除组合框所有内容
关闭控件窗口
设计时类名
列表项数目
删除当前选中项
类似dir命令,列出指定目录下匹配的文件,支持通配符
参数@2可指定选项,默认为 _DDL_READWRITE
是否禁用
返回下拉控件编辑框
查找列表项
精确查找指定的项
找不到返回0
控件客户区块位置(::RECT结构体)
控件字体(::LOGFONT结构体)
返回父窗口
返回相对坐标,宽,高
x,y,cx,cy=win.getPos(hwnd)
控件区块位置(::RECT结构体)
控件屏幕区块位置(::RECT结构体)
高度
当前控件窗口是否隐藏。
仅检查当前窗口的可见性样式(窗口 是否移除了 _WS_VISIBLE 样式)。
不考虑父窗口是否可见,不考虑是否被其他窗口遮挡。
如果需要同时判断父窗口的可见性,应改用 win.isVisible 函数。
以 .
前导的 .hide()
作为成员函数被调用时,
作用等价于将 hide 属性设为 null 。
控件句柄
控件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.onSize = function( width,height,wParam ) {
/*父窗口改变大小后会自动触发此事件函数。
注意 onSize 是 adjust 事件的别名,作用相同
所有 win.form 创建的窗体和控件都支持 onSize(或 adjust)事件,
重复赋值 onSize(或 adjust)会追加事件触发器而非替换原来的值。
width 参数为窗口客户区宽度,height 参数为窗口客户区高度,
wParam 参数来自 _WM_SIZE 消息的 wParam 参数,一般不用管。
一般不建议添加一个 wndproc 仅仅是为了处理 _WM_SIZE 消息,
定义 onSize 事件是更好的选择。
};*/
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