aardio 文档

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

win.ui.ctrl 成员列表

win.ui.ctrl.listbox()

列表框
listbox 默认会自动调整高度以对齐项目行高,
在创建参数中添加 integralHeight = false 可禁止此特性

返回对象:listboxObject

listboxObject 成员列表

listboxObject._defWindowProc(hwnd,message,wParam,lParam)

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

listboxObject._parentForm

创建该控件的父窗口(win.form对象),
设计时窗体容器是所有拖放在窗体上的控件的 _parentForm,

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

返回对象:winform

listboxObject.add(请输入文本)

添加列表项到尾部

listboxObject.add(请输入文本,-1)

添加列表项到尾部

listboxObject.add(请输入文本,1)

添加列表项到头部

listboxObject.addCtrl

listboxObject.addCtrl(  

    edit ={ cls="edit";left=0;top=0;right=50;bottom=50;autoResize=false ;hide=1;edge=1;  }  
)

listboxObject.addfile(请输入路径)

向列表框里增加一个文件(包括目录)

listboxObject.adjust

listboxObject.adjust = function( cx,cy,wParam ) {      
    /*窗口缩放时会自动触发此函数。  
cx 参数为窗口宽度,cy 参数为窗口高度,  
wParam 参数请参考 _WM_SIZE 消息参数说明,一般不用管。  

所有 win.form 创建的窗体和控件都支持此事件,  
重复赋值只会追加而不会覆盖此事件。  
一般不建议添加一个 wndproc 仅仅是为了处理  _WM_SIZE 消息,  
定义 adjust 事件是更好的选择。  

可主动调用此事件,省略参数时 cx,cy 参数默认设为窗口大小*/    
};

listboxObject.bottom

底部坐标
注意listbox的实际高度受行高的影响
只有自绘时才能设置行高

listboxObject.capture

是否捕获全局鼠标消息

listboxObject.className

运行时类名

listboxObject.clear()

清除列表框所有内容

listboxObject.clientRect

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

listboxObject.close()

关闭控件窗

listboxObject.cls

设计时类名

listboxObject.count

列表项数目

listboxObject.delete()

删除当前选中项

删除指定项

listboxObject.disabled

是否禁用

listboxObject.eachSelected()

for index,text in listboxObject.eachSelected(){
    /*从后向前倒序遍历所有选中项,  
迭代变量 index 为选中项序号,  
迭代变量 text 当前行文本值*/
}

listboxObject.ensureVisible()

滚动视图以确定可以显示参数指定行序号的项,
不指定参数则设置当前选中焦点项

listboxObject.find(请输入文本)

在列表框里查找指定的项
找不到返回0

listboxObject.findEx(请输入文本)

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

listboxObject.getClientRect()

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

返回对象:rectObject

listboxObject.getFont()

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

返回对象:logfontObject

listboxObject.getItemRect(项索引)

获取指定项区块位置
返回::RECT() 结构体

listboxObject.getItemText(项索引)

获取指定项文本

listboxObject.getParent()

返回父窗口

返回对象:staticObject

listboxObject.getPos()

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

listboxObject.getRect()

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

listboxObject.getRect(true)

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

listboxObject.getSelected(1项索引)

是否选中

listboxObject.height

高度
listbox 默认会自动调整高度以对齐项目行高,
在创建参数中添加 integralHeight = false 可禁止此特性

listboxObject.hitTest(x,y)

返回指定客户区坐标所在的项索引.

listboxObject.hitTest(x坐标,y坐标,是否屏幕坐标)

该函数返回指定坐标的句柄,参数三可省略,默认为false.
如果不指定任何参数,则自动获取当前消息坐标

listboxObject.hwnd

控件句柄

listboxObject.id

控件ID

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

使窗口绘图区无效

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

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

listboxObject.items

列表项集合
table对象

listboxObject.left

左侧坐标

listboxObject.modifyStyle(remove,add,swpFlags)

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

listboxObject.modifyStyleEx(remove,add,swpFlags)

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

listboxObject.onDestroy

listboxObject.onDestroy = function(){  
    /*窗口销毁前触发*/  
}

listboxObject.onDoubleClickItem()

listboxObject.onDoubleClickItem = function(){
    /*双击列表项触发此事件,  
使使用 selIndex 获取双击的项*/
}

listboxObject.onDrawItem(drawItem)

listboxObject.onDrawItem = function(drawItem){
    /*控件属性里指定 ownerDraw 为 true 触发此事件  
在这里自绘控件项*/  
}

listboxObject.onKillFocus()

listboxObject.onKillFocus = function(){
    /*失去焦点触发此事件*/
}

listboxObject.onMeasureItem(measureItem,dpiScaleX,dpiScaleY)

listboxObject.onMeasureItem = function(measureItem){
    measureItem.itemHeight = 61 * dpiScaleY;  
    /*控件属性里指定 ownerDraw 为 true 触发此事件  
在这里配置自绘控件项参数*/
}

listboxObject.onSelCancel()

listboxObject.onSelCancel = function(){
    /*取消选项时触发此事件*/
}

listboxObject.onSelChange()

listboxObject.onSelChange = function(){
    /*改变当前选项时触发此事件*/
}

listboxObject.onSetFocus()

listboxObject.onSetFocus = function(){
    /*获得焦点触发此事件*/
}

listboxObject.oncommand

listboxObject.oncommand = function(id,event){  
    /*命令事件触发*/  
}

listboxObject.onnotify

listboxObject.onnotify = function(id,code,ptr){  
    /*通知事件触发*/  
}

listboxObject.orphanWindow(transparent,hwndBuddy,borderless)

创建悬浮窗口。
悬浮窗口是模仿子窗口外观效果的独立窗口,父窗口可自动调整子窗口到设定位置。
可选参数 @transparent 为 true 则转换为分层透明窗口。
可选利用 @hwndBuddy 参数指定外部进程窗口句柄的并附加在内部控件上以实现相同的效果。
伙伴窗口总是会保持在悬浮窗口前面,并保持相同的大小、位置。
可重复调用此函数更换伙伴窗口,旧的伙伴窗口必须自行关闭。
可选指定 @borderless 参数 为 true 以移除 @hwndBuddy 的窗口边框。

listboxObject.postMessage(msg,wParam,lParam)

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

listboxObject.redraw()

刷新

listboxObject.right

右侧坐标

listboxObject.selIndex

获取或设置列表框当前选中项
仅在单选模式下有效,多选模式下请使用 selected 获取所有获中项

listboxObject.selText

获取当前选项的文本
或根据指定的文本查找并改变选项

listboxObject.selectRange(1,)

选中指定范围
如果不指定任何参数,取消选区

listboxObject.selected

所有选中项目索引的数组,
设为 null 或空表清除所有选中项

listboxObject.sendMessage(msg,wParam,lParam)

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

listboxObject.setFocus()

设置焦点

listboxObject.setFont(指定字体)

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

listboxObject.setFont(混入字体属性)

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

listboxObject.setParent(控件对象)

改变父窗口

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

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

listbox 默认会自动调整高度以对齐项目行高,
在创建参数中添加 integralHeight = false 可禁止此特性

listboxObject.setRect(rc)

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

listboxObject.setRect(rc,true)

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

listboxObject.setSelected(1项索引)

选中指定项,索引为0则选定全部
该函数仅在开启控件多选模式下有效
单选模式下请使用selIndex属性替代

listboxObject.setSelected(1项索引,false)

取消选中指定项,索引为0则取消全选

listboxObject.show(true)

显示控件

listboxObject.theme

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

listboxObject.threadCallable()

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

listboxObject.top

顶部坐标

listboxObject.update()

重绘invalidate函数指定的区块

listboxObject.width

宽度

listboxObject.wndproc

listboxObject.wndproc = function(hwnd,message,wParam,lParam){  
    /*窗口消息回调,返回任意非null值阻止默认回调  
wndproc重复赋值时追加函数而不是覆盖之前的回调  
设为null添除所有消息回调函数  
wndproc也可以是一个表,键要为处理的消息,值为对应的消息回调函数*/     
}

自动完成常量

_LBN_DBLCLK=0x2
_LBN_KILLFOCUS=0x5
_LBN_SELCANCEL=0x3
_LBN_SELCHANGE=0x1
_LBN_SETFOCUS=0x4
_LBS_DISABLENOSCROLL=0x1000
_LBS_EXTENDEDSEL=0x800
_LBS_HASSTRINGS=0x40
_LBS_MULTICOLUMN=0x200
_LBS_MULTIPLESEL=0x8
_LBS_NODATA=0x2000
_LBS_NOINTEGRALHEIGHT=0x100
_LBS_NOREDRAW=0x4
_LBS_NOTIFY=0x1
_LBS_OWNERDRAWFIXED=0x10
_LBS_OWNERDRAWVARIABLE=0x20
_LBS_SORT=0x2
_LBS_USETABSTOPS=0x80
_LBS_WANTKEYBOARDINPUT=0x400
_LB_ADDFILE=0x196
_LB_ADDSTRING=0x180
_LB_CTLCODE=0x0
_LB_DELETESTRING=0x182
_LB_DIR=0x18D
_LB_FINDSTRING=0x18F
_LB_FINDSTRINGEXACT=0x1A2
_LB_GETANCHORINDEX=0x19D
_LB_GETCARETINDEX=0x19F
_LB_GETCOUNT=0x18B
_LB_GETCURSEL=0x188
_LB_GETHORIZONTALEXTENT=0x193
_LB_GETITEMDATA=0x199
_LB_GETITEMHEIGHT=0x1A1
_LB_GETITEMRECT=0x198
_LB_GETLOCALE=0x1A6
_LB_GETSEL=0x187
_LB_GETSELCOUNT=0x190
_LB_GETSELITEMS=0x191
_LB_GETTEXT=0x189
_LB_GETTEXTLEN=0x18A
_LB_GETTOPINDEX=0x18E
_LB_INSERTSTRING=0x181
_LB_MSGMAX=0x1A8
_LB_OKAY=0x0
_LB_RESETCONTENT=0x184
_LB_SELECTSTRING=0x18C
_LB_SELITEMRANGE=0x19B
_LB_SELITEMRANGEEX=0x183
_LB_SETANCHORINDEX=0x19C
_LB_SETCARETINDEX=0x19E
_LB_SETCOLUMNWIDTH=0x195
_LB_SETCOUNT=0x1A7
_LB_SETCURSEL=0x186
_LB_SETHORIZONTALEXTENT=0x194
_LB_SETITEMDATA=0x19A
_LB_SETITEMHEIGHT=0x1A0
_LB_SETLOCALE=0x1A5
_LB_SETSEL=0x185
_LB_SETTABSTOPS=0x192
_LB_SETTOPINDEX=0x197

Markdown 格式