aardio 文档

win.ui.ctrl.combobox 库模块帮助文档

win.ui.ctrl 成员列表 #

win.ui.ctrl.combobox() #

下拉框控件

返回对象:comboboxObject

comboboxObject 成员列表 #

comboboxObject._defWindowProc(hwnd,message,wParam,lParam) #

用于在 wndproc 回调中提前调用默认消息回调函数,
所有窗口和控件定义了 wndproc 回调以后会自动创建这个函数,
调用此函数以后,wndproc 必须指定非 null 返回值,
以避免再次重复调用默认回调函数

comboboxObject._parentForm #

返回创建控件的容器窗口(win.form对象),所有窗口控件都拥有此只读属性。
对于使用窗体设计器创建的窗口,也就是返回设计时窗体容器。

即使子窗口移除子窗口样式、更改父子关系,或以 orphanWindow显示,
控件的 _parentForm 始终都不会改变

返回对象:winform

comboboxObject.add("文本") #

添加到组合框,
支持0x100/*_CBS_SORT*/排序

comboboxObject.adjust #

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 参数默认设为窗口大小*/    
};

comboboxObject.autoComplete #

用于onEditChange事件内部显示自动完成列表
此函数会在显示列表后保持输入文本与光标不变
仅适用于dropdown模式

comboboxObject.autoComplete(items,selIndex) #

items参数使用一个字符串数组指定要显示的列表项,  
@selIndex指定选项索引,不指定时默认为1

comboboxObject.bottom #

底部坐标

comboboxObject.capture #

是否捕获全局鼠标消息

comboboxObject.className #

运行时类名

comboboxObject.clear() #

清除组合框所有内容

comboboxObject.close() #

关闭控件窗口

comboboxObject.cls #

设计时类名

comboboxObject.count #

列表项数目

comboboxObject.delete() #

删除当前选中项

comboboxObject.dir("目录路径",_DDL_...) #

类似dir命令,列出指定目录下匹配的文件,支持通配符
参数@2可指定选项,默认为 _DDL_READWRITE

comboboxObject.disabled #

是否禁用

comboboxObject.editBox #

返回下拉控件编辑框

返回对象:editObject

comboboxObject.find(请输入文本) #

查找列表项

comboboxObject.findEx(请输入文本) #

精确查找指定的项
找不到返回0

comboboxObject.getClientRect() #

控件客户区块位置(::RECT结构体)

返回对象:rectObject

comboboxObject.getFont() #

控件字体(::LOGFONT结构体)

返回对象:logfontObject

comboboxObject.getParent() #

返回父窗口

返回对象:staticObject

comboboxObject.getPos() #

返回相对坐标,宽,高
x,y,cx,cy=win.getPos(hwnd)

comboboxObject.getRect() #

控件区块位置(::RECT结构体)

comboboxObject.getRect(true) #

控件屏幕区块位置(::RECT结构体)

comboboxObject.height #

高度

comboboxObject.hide #

当前控件窗口是否隐藏。
仅检查当前窗口的可见性样式(窗口 是否移除了 _WS_VISIBLE 样式)。
不考虑父窗口是否可见,不考虑是否被其他窗口遮挡。
如果需要同时判断父窗口的可见性,应改用 win.isVisible 函数。

. 前导的 .hide() 作为成员函数被调用时,
作用等价于将 hide 属性设为 null 。

comboboxObject.hwnd #

控件句柄

comboboxObject.id #

控件ID

comboboxObject.info() #

返回COMBOBOXINFO结构体,
关于此结构体请查阅MSDN

comboboxObject.insert("文本",插入位置) #

默认添加到开始处,
-1表示添加到尾部
不支持0x100/*_CBS_SORT*/排序

comboboxObject.invalidate(/*可选使用::RECT()对象指定客户区*/) #

使窗口绘图区无效

comboboxObject.invalidate(/*可选使用::RECT()对象指定客户区*/,0) #

使窗口绘图区无效
不刷新背景

comboboxObject.items #

获取或设置组合框列表,属性值为字符串数组,

仅在属性面板设置初始化items属性时初始化selIndex为1,
代码中动态修改items后请自行指定selIndex,

如果自动指定了你不想要的selIndex,这会增加不必要的重绘。

comboboxObject.left #

左侧坐标

comboboxObject.limit #

只写属性,修改最大允许输入的文本长度,
如果设为0,则设定为默认长度0x7FFFFFFE,
必须在控件初始化属性中启用横向滚动条,该属性才能生效

comboboxObject.listBox #

返回下拉控件列表框

返回对象:listboxObject

comboboxObject.minVisible #

设置或获取下拉列表最小显示项目数,
请在设计属性中启用垂直滚动条。

如果不想多点一下,可如下改进此属性源码:
util.metaProperty.extend(win.ui.ctrl.combobox,{
minVisible = {
_set = function( v ){
::SendMessageInt(owner.hwnd , 0x1701/*_CB_SETMINVISIBLE*/,v,0);
}
}
})

comboboxObject.modifyStyle(remove,add,swpFlags) #

修改窗口样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS 前缀的常量
@add 用数值指定要添加的样式,可使用 WS 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码

comboboxObject.modifyStyleEx(remove,add,swpFlags) #

修改窗口扩展样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS_EX 前缀的常量
@add 用数值指定要添加的样式,可使用 WS_EX 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码

comboboxObject.onCancel() #

comboboxObject.onCancel = function(){ 
    /*响应事件,用户未确认选项且且下拉框即将关闭  
例如用户点击其他控件关闭下拉列表或直接关闭窗口*/
}

comboboxObject.onCloseUp() #

comboboxObject.onCloseUp = function(){ 
    /*下拉列表隐藏时触发此事件*/
}

comboboxObject.onDropDown() #

comboboxObject.onDropDown = function(){ 
    /*弹出下拉列表前触发此事件  
用代码调用 showDropDown 函数也会触发此事件*/
}

comboboxObject.onEditChange() #

comboboxObject.onEditChange = function(){ 
    /*响应事件,输入框中的文本已变更,  
只有用户输入时才会触发,  
切换选项或使用代码修改text属性不会触发  
注意使用text属性取最新值*/
}

comboboxObject.onFocusGot() #

comboboxObject.onFocusGot = function(){ 
    /*下拉框获得焦点时触发此事件*/
}

comboboxObject.onFocusLost() #

comboboxObject.onFocusLost = function(){ 
    /*下拉框失去焦点时触发此事件*/
}

comboboxObject.onListChange() #

comboboxObject.onListChange = function(){   
    /*改变当前选项触发此事件。  
在下拉框上按方向键调整当前选项会触发此事件,  
在选项上回车确认选项时,如果选项已改变则会触发此事件,  
如果回车操作未改变选项仅触发 onOk 事件。  

注意事件中要用 selText 属性取新的值  
使用代码修改 selIndex 是不会触发*/
}

comboboxObject.onOk() #

comboboxObject.onOk = function(){ 
    /*响应事件,用户已确认选择指定选项,  
注意事件中要用 selText 属性取新的值  
单击选项或在选项上回车都会触发此事件(无论是否改变选项)*/
}

comboboxObject.onSize #

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(id,event) #

comboboxObject.oncommand = function(id,event){
    var text = owner.selText;
    /*响应事件,event比较常用的值:  
_CBN_SELCHANGE表示正在改变当前项,但下拉框还没有关闭  
_CBN_SELENDOK表示已改变选项且下拉框即将关闭  
注意事件中要用selText属性取新的值*/
}

comboboxObject.orphanWindow(transparent,hwndBuddy) #

创建悬浮窗口,
悬浮窗口仍然显示在原来的位置,
悬浮窗口如影随形的跟随父窗口移动或改变大小,控件原来的固定边距等参数仍然有效
此控件不建议指定参数

comboboxObject.postMessage(msg,wParam,lParam) #

投递窗口消息到消息队列中
此函数用法请参考 ::User32.PostMessage

comboboxObject.redraw() #

刷新

comboboxObject.right #

右侧坐标

comboboxObject.selIndex #

获取或指定当前选中的项索引,属性值为数值,
设为null取消选项

comboboxObject.selText #

读取或设置组合框当前选中文本
在onOk事件回调中获取最新值应当使用selText而不是text属性

获取或指定当前选中的文本,精确匹配

comboboxObject.selectString("文本前缀",开始索引) #

按文本前缀查找并选中项目,
自开始索引后面开始查找,默认值为0也就是开始处搜索

comboboxObject.sendMessage(msg,wParam,lParam) #

发送窗口消息
此函数用法请参考 ::User32.SendMessage

comboboxObject.setCueBannerText("提示文本") #

指定文本框文本为空时的显示的默认提示文本,
此函数会取消当前选中项,
XP系统不支持此函数、但调用不报错

comboboxObject.setCueBannerText(提示文本) #

设置文本为空的输入提示,
参数 @1 使用字符串指定提示内容。
此函数会自动设置控件 text 属性为空

comboboxObject.setFocus() #

设置焦点

comboboxObject.setFont(指定字体) #

指定LOGFONT字体对象,或逻辑字体句柄

comboboxObject.setFont(混入字体属性) #

comboboxObject.setFont(point=10;name="宋体");

comboboxObject.setParent(控件对象) #

改变父窗口

comboboxObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) #

调整窗口位置或排序,所有参数可选
同时指定x,y坐标则移动位置
同时指定宽高则改变大小
指定插入位置(句柄或_HWND前缀常量)则调整Z序

comboboxObject.setRect(rc) #

设置控件区块位置(::RECT结构体)

comboboxObject.setRect(rc,true) #

设置控件屏幕区块位置(::RECT结构体)

comboboxObject.show(true) #

显示控件

comboboxObject.showDropDown(true) #

显示下拉列表
参数为false隐藏下拉列表

comboboxObject.tabNext() #

返回对象:staticObject

comboboxObject.tabNext(移动焦点,是否反向) #

获取下一个支持tab控制焦点的控件
参数@1为true会自动移动焦点到该控件
参数@2为true则获取上一个控件,否则获取下一个控件

comboboxObject.text #

组合框当前输入文本
在onOk事件回调中获取最新值应当使用selText而不是text属性

comboboxObject.theme #

外观主题,例如
winform.button.theme = "Explorer"
winform.button.theme = false

comboboxObject.threadCallable() #

开启此控件的跨线程调用功能

comboboxObject.top #

顶部坐标

comboboxObject.topIndex #

获取此属性返回首个可见项索引,
设置此属性为项目索引则滚动到该项可见。
项目起始索引为 1

comboboxObject.update() #

重绘invalidate函数指定的区块

comboboxObject.valid #

窗口是否有效,
窗口未关闭返回 true ,
窗口已关闭或正在关闭返回 false

comboboxObject.width #

宽度

自动完成常量

_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

Markdown 格式