文档库 最新最全的文档下载
当前位置:文档库 › 列表框控件

列表框控件

列表框控件
列表框控件

列表框控件(listbox)

[下载例程]

列表框主要用于输入,它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示.列表框具有边框,并且一般带有一个垂直滚动条.列表框分单选列表框和多重选择列表框两种.单选列表框一次只能选择一个列表项,而多重选择列表框可以进行多重选择.对于列表项的选择,

应用程序用CreateWindowEx创建列表框控件时,可根据控件的用途在下表中选择部份常数来设定其风格属性(style)。

常数说明

LBS_DISABLENOSCROLL 固定显示垂直滚动条。未指定本项时,当列表未超出窗口,垂直滚动条自动隐藏。

LBS_EXTENDEDSEL 使用键盘“SHIFT”键或另指定键加鼠标进行多选。

LBS_HASSTRINGS 含有字符串的自绘式列表框.应用程序在自绘式列表框进行自绘时可以用LB_GETTEXT消息来取得列表项的文本。

LBS_MULTICOLUMN 多列列表框,带有水平滚动条。应用程序可以用LB_SETCOLUMNWIDTH 消息来为列表框指定列数。

LBS_MULTIPLESEL 支持多重选择。列表项的选择状态随着用户对该项单击或双击鼠标而翻转。

LBS_NODA TA本项已不被支持。

LBS_NOINTEGRALHEIGHT 列表框的尺寸由应用程序而不是Windows指定.通常,Windows指定尺寸会使列表项的某些部分隐藏起来。

LBS_NOREDRA W 禁止刷新。当选择发生变化时防止列表框被更新,可发送WM_SETREDRA W来改变该风格。

LBS_NOSEL 禁止选择,列表项只能看,不能被选择。

LBS_NOTIFY当用户单击或双击鼠标时通知父窗口。

LBS_OWNERDRAWFIXED 指定自绘式列表框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度。在控件被创建时父窗口将收到WM_MEASUREITEM 消息,当需要重绘时父窗口将收到WM_DRA WITEM 消息。

LBS_OWNERDRAWV ARIABLE 指定自绘式列表框,并且列表项有不同的高度.在控件被创建时父窗口将收到WM_MEASUREITEM消息,当需要重绘时父窗口将收到WM_DRA WITEM 消息。

LBS_SORT 使插入列表框中的项按字母升序排列.

LBS_STANDARD 使用默认风格,相当于指定了边框,垂直滚动条,字母升序排列和鼠标单双击通知消息这几项风格

LBS_USETABSTOPS 使列表框在显示列表项时识别并扩展制表符(08h),缺省的制表宽度是32个对话框单位。

LBS_WANTKEYBOARDINPUT 响应键盘输入。当控件拥有键盘输入焦点时,允许接收父窗口接收WM_VKEYTOITEM和WM_CHARTOITEM消息,输入字符。

应用程序可以通过调用SendMessage向控件发送如下消息来设定和查询控件各种参数。uMsg wParam lParam 说明

LB_ADDFILE 0 文件名地址增加文件名。

LB_ADDSTRING 0 字符串地址追加一个列表项。如果指定了LBS_SORT风格,表项将被

重排序,否则将被追加在列表框的最后一项。

LB_DELETESTRING 列表项序号0 删除指定的列表项,

LB_DIR DDL_ARCHIVE 指向通配符地址在列表框中列出文件名,必须是当前路径内,符合指定通配符,存档属性的文件名。

DDL_DIRECTORY在列表框中列出当前路径的子文件夹。子文件夹名前后将加上一对方括号"[*]"

DDL_DRIVES 在列表框中列出本机的所有驱动器名。驱动器名前后将加上一对方括号和减号"[-*-]"

DDL_EXCLUSIVE 只列出指定属性的文件名,默认情况下是所有可读写文件都列出。如果没有指定任何文件属性,则不列出文件名。

DDL_HIDDEN 列出隐藏属性的文件名。

DDL_READONLY列出只读属性的文件名。

DDL_READWRITE 列出读写属性的文件名。

DDL_SYSTEM 列出系统属性的文件名。

LB_FINDSTRING 开始表项序号字符串地址查找匹配字符串,忽略大小写,从指定开始表项序号开始查找,当查到某表项的文本字符串的前面包括指定的字符串则结束,找不到则转到列表框第一项继续查找,直到查完所有表项,如果wParam为-1则从列表框第一项开始查找,如果找到则返回表项序号,否则返回LB_ERR。如:表项字符串为"abc123"和指定字串"ABC"就算匹配。

LB_FINDSTRINGEXACT 开始表项序号字符串地址查找字符串,忽略大小写,与LB_FINDSTRING不同,本操作必须整个字符串相同。如果找到则返回表项序号,否则返回LB_ERR。

LB_GETANCHORINDEX 0 0 返回鼠标最后选中的项的索引

LB_GETCARETINDEX 0 0 返回具有矩形焦点的项的索引

LB_GETCOUNT 0 0 返回列表项的总项数,若出错则返回LB_ERR.

LB_GETCURSEL 0 0 本操作仅适用于单选择列表框,用来返回当前被选择项的索引,如果没有列表项被选择或有错误发生,则返回LB_ERR.

LB_GETHORIZONTALEXTENT 0 0 返回列表框的可滚动的宽度(象素)

LB_GETITEMDA TA索引0 每个列表项都有一个32位的附加数据.该函数返回指定列表项的附加数据。若出错则函数返回LB_ERR.

LB_GETITEMHEIGHT 索引0 返回列表框中某一项的高度(单位:象素)

LB_GETITEMRECT 索引RECT结构地址获得列表项的客户区的RECT

LB_GETLOCALE 0 0 取列表项当前用于排序的语言代码,当用户使用LB_ADDSTRING向组合框中的列表框中添加记录并使用LBS_SORT风格进行重新排序时,必须使用该语言代码。返回值中高16位为国家代码。

LB_GETSEL 索引0 返回指定列表项的状态。如果查询的列表项被选择了,函数返回一个正值,否则返回0,若出错则返回LB_ERR。

LB_GETSELCOUNT 0 0 本操作仅用于多重选择列表框,它返回选择项的数目,若出错函数返回LB_ERR.

LB_GETSELITEMS 数组的大小缓冲区本操作仅用于多重选择列表框,用来获得选中的项的数目及位置。参数lParam指向一个整型数数组缓冲区,用来存放选中的列表项的索引。wParam说明了数组缓冲区的大小。本操作返回放在缓冲区中的选择项的实际数目,若出错函数返回LB_ERR.

LB_GETTEXT 索引缓冲区用于获取指定列表项的字符串。参数lParam指向一个接收字

符串的缓冲区.wParam则指定了接收字符串的列表项索引。返回获得的字符串的长度,若出错,则返回LB_ERR。

LB_GETTEXTLEN 索引0 返回指定列表项的字符串的字节长度。wParam指定了列表项的索引.若出错则返回LB_ERR。

LB_GETTOPINDEX 0 0 返回列表框中第一个可见项的索引,若出错则返回LB_ERR.

LB_INITSTORAGE 表项数内存字节数本操作只适用于Windows95版本,当你将要向列表框中加入很多表项或有很大的表项时,本操作将预先分配一块内存,以免在今后的操作中一次一次地分配内存,从而加快程序运行速度。

LB_INSERTSTRING 索引字符串地址在列表框中的指定位置插入字符串。wParam指定了列表项的索引,如果为-1,则字符串将被添加到列表的末尾。lParam指向要插入的字符串。本操作返回实际的插入位置,若发生错误,会返回LB_ERR或LB_ERRSPACE。与LB_ADDSTRING不同,本操作不会导致LBS_SORT风格的列表框重新排序。建议不要在具有LBS_SORT风格的列表框中使用本操作,以免破坏列表项的次序。

LB_ITEMFROMPOINT 0 位置获得与指定点最近的项的索引,lParam指定在列表框客户区,低16位为X坐标,高16位为Y坐标。

LB_RESETCONTENT 0 0 清除所有列表项。

LB_SELECTSTRING 开始表项序号字符串地址本操作仅适用于单选择列表框,设定与指定字符串相匹配的列表项为选中项。本操作会滚动列表框以使选择项可见。参数的意义及搜索的方法与LB_FINDSTRING类似。如果找到了匹配的项,返回该项的索引,如果没有匹配的项,返回LB_ERR并且当前的选中项不被改变。

LB_SELITEMRANGE TRUE或FALSE 范围本操作仅用于多重选择列表框,用来使指定范围内的列表项选中或落选.参数lParam指定了列表项索引的范围,低16位为开始项高16位为结束项。如果参数wParam为TRUE,那么就选择这些列表项,否则就使它们落选。若出错函数返回LB_ERR。

LB_SELITEMRANGEEX 起点终点本操作仅用于多重选择列表框,若指定终点大于起点则设定该范围为选中,若指定起点大于终点则设定该范围为落选。

LB_SETANCHORINDEX 索引0 设置鼠标最后选中的表项成指定表项

LB_SETCARETINDEX 索引TRUE或FALSE 设置键盘输入焦点到指定表项,若lParam为TRUE则滚动到指定项部份可见,若lParam为FALSE则滚动到指定项全部可见。

LB_SETCOLUMNWIDTH 宽度(点) 0 设置列的宽度。

LB_SETCOUNT 项数0 设置表项数目

LB_SETCURSEL 索引0 本操作仅适用于单选择列表框,设置指定的列表项为当前选择项。本操作会滚动列表框以使选择项可见。参数wParam指定了列表项的索引,若为-1,那么将清除列表框中的选择。若出错函数返回LB_ERR。

LB_SETHORIZONTALEXTENT 宽度(点) 0 设置列表框的滚动宽度。

LB_SETITEMDA TA索引数据值更新指定列表项的32位附加数据。

LB_SETITEMHEIGHT 索引高度(点) 指定列表项显示高度,带有LBS_OWNERDRAWV ARIABLE(自绘列表项)风格的控件,只设置由wParam指定项的高度,其它风格将更新所有的列表项的高度。

LB_SETLOCALE 语言代码0 取列表项当前用于排序的语言代码,当用户使用LB_ADDSTRING向组合框中的列表框中添加记录并使用LBS_SORT风格进行重新排序时,必须使用该语言代码。返回值中高16位为国家代码。

LB_SETSEL TRUE或FALSE 索引本操作仅适用于多重选择列表框,它使指定的列表项选中或落选。参数lParam指定了列表项的索引,若为-1,则相当于指定了所有的项。参数wParam

为TRUE时选中列表项,否则使之落选。若出错则返回LB_ERR。

LB_SETTABSTOPS 站数索引顺序表设置列表框的光标(输入焦点)站数及索引顺序表。LB_SETTOPINDEX 索引0 用来将指定的列表项设置为列表框的第一个可见项,该函数会将列表框滚动到合适的位置。wParam指定了列表项的索引.若操作成功,返回0值,否则返回LB_ERR。

当用户在列表框上进行各种操作时,其父窗口将收到WM_COMMAND通知消息,同时wParam的低16位带控件的ID。lParam带控件句柄(hWnd),wParam的高16位带有如下表的消息代码。

消息代码说明

LBN_DBLCLK 用户单击了列表项。

LBN_ERRSPACE 列表框无法申请到足够的内存空间。

LBN_KILLFOCUS 列表框失去输入焦点。

LBN_SELCANCEL 取消选择列表项。

LBN_SELCHANGE 列表框的选择项即将被改变。

LBN_SETFOCUS 列表框得到键盘输入焦点。

按键精灵插件使用说明

函数说明: 1.TransformWindow(窗口句柄) 功能:转换窗口,对要取后台图色数据的窗口使用该函数后才能取后台图色数据。如果是DX图形绘图的窗口,DX绘图区域必须有部分移到屏幕外,否则无法使用。转换窗口后,有些窗口(特别是大多数游戏的)要等待一会儿才能用其它函数可靠地取到后台图色数据,等待的时间要大于画面两次刷新的时间间隔。转换后到取消转换前,可以无限次使用取到后台图色数据的命令,即通常只需要转换一次。 参数: 1)窗口句柄:整型数。 2.UnTransformWindow(窗口句柄) 功能:取消窗口转换,DX图形绘图的窗口,用过TransformWindow后,必须用UnTransformWindow取消窗口转换才能让DX绘图完全移到屏幕中,否则后很严重(不会损坏电脑的),自己试下就知道了。 参数: 1)窗口句柄:整型数。 3.GetPixelColor(窗口句柄,横坐标,纵坐标)[颜色值] 功能:获得指定点的颜色 参数: 1)窗口句柄:整型数。 2)横坐标:整型数,窗口客户区坐标。 3)纵坐标:整型数,窗口客户区坐标。 返回值: 颜色值:整型数。 例子: Plugin hwnd=Window.Foreground() Plugin Window.Move(hwnd,-30,10) Plugin BGCP2_02.TransformWindow(hwnd) Delay 200 Plugin color=BGCP2_02.GetPixelColor(hwnd,0,0) MsgBox CStr(Hex(color)),4096,"颜色" Plugin BGCP2_02.UnTransformWindow(hwnd) Plugin Window.Move(hwnd,10,10) 4.CmpColor(窗口句柄,横坐标,纵坐标,颜色,颜色最大偏差)[是否满足条件] 功能:判断指定点的颜色,后台的IfColor 参数: 1)窗口句柄:整型数。 2)横坐标:整型数,窗口客户区坐标。 3)纵坐标:整型数,窗口客户区坐标。 4)颜色:整型数。 5)颜色最大偏差:整型数。游戏中不同电脑上显示的颜色会有点偏差,这个参数用于兼容这种情况,它设置的是RGB各颜色分量偏差的最大允许值,取值范围是0-255,0是无颜色偏差。 返回值: 是否满足条件:布尔值,布尔值是用来表达是真是假的,指定点的颜色满足条件就返回真,否则返回假。 例子: Import "BGCP2_02.dll" Plugin hwnd=Window.Foreground() Plugin Window.Move(hwnd,-30,10) Plugin BGCP2_02.TransformWindow(hwnd) Delay 200 Plugin tj=BGCP2_02.CmpColor(hwnd,6,5,&HFF7F00,30) If tj=true MsgBox "满足条件",4096 Else MsgBox "不满足条件",4096 EndIf Plugin BGCP2_02.UnTransformWindow(hwnd) Plugin Window.Move(hwnd,10,10) 5.FindColor(窗口句柄,左边界,上边界,右边界,下边界,颜色,颜色最大偏差,查找方式,横坐标,纵坐标) 功能:找色 参数: 1)窗口句柄:整型数。 2)左边界,整型数,用于设置找色范围,找色区域左上角的横坐标(窗口客户区坐标)。 3)上边界,整型数,用于设置找色范围,找色区域左上角的纵坐标(窗口客户区坐标)。 4)右边界,整型数,用于设置找色范围,找色区域右下角的横坐标(窗口客户区坐标)。 5)下边界,整型数,用于设置找色范围,找色区域右下角的纵坐标(窗口客户区坐标)。

jQuery实现仿百度搜索时的下拉列表

当我们使用百度或是谷歌进行搜索时,只要输入一个字母就可以产生一个下拉列表,并且可以通过键盘上下键来控制列表项的选择。最近在项目中也碰到了类似的情况,在文本框中输入某个字母就可以出现一个下拉列表,展现从数据库里搜索过来的结果。 AD: 先说一下我的实现思路吧,当用户在文本框中输入时,可以利用ajax方式将文本框内内容传给后台的某个页面,在那个页面中经过处理后将产生的结果(这里的结果是一个字符串数组)再获取过来在前台呈现。有了思路后就开始考虑怎么去具体实现吧。首先要使用ajax的话,就想到可以使用jQuery提供的$.post()方法,这个方法可带4个参数,分别是: ·url,请求的页面URL地址; ·data(可选),作为HTTP消息的实体内容发送给服务器; ·callback(可选),载入成功后的回调函数,自动将请求结果和状态传递给该方法; ·type(可选),服务器端返回的数据格式,可以是:xml、html、script、json等。 好,现在对$.post()方法有了一定的了解,现在就可以考虑这个方法该怎么来写了。在我的项目中,请求的URL地址是@Url.Action("GetTags")(由于是https://www.wendangku.net/doc/ca17984003.html, MVC架构,地址是由Routing配置产生的,这个转义到前台就是一个普通的URL地址),需要传送的是ID为newTag的文本框中的值,所以第二个参数为{pinyins: $("#newTag").val()},这里的pinyins是由后台定义的。第三个参数callback是处理请求成功后要做的事,暂且命名为pinyinCallback,第四个参数设为'json',即数据格式为一个JSON对象。这样的话,这个ajax请求可以写为: 1.$.post('@Url.Action("GetTags")', { pinyins: $("#newTag").val() }, piny inCallback, 'json'); 但是如果用户每输入一个字母就立即往服务器传的的话,服务器的承载就会过大,于是考虑可以将每次请求延迟一秒发送,于是发送请求的方法可以这样定义: 1.function pinyinOption() { 2. var t = setTimeout(function () { 3. $.post('@Url.Action("GetTags")', { pinyins: $("#newTag").v al() }, pinyinCallback, 'json'); 4. }, 1000); 5. 6. }

VFP中的列表框控件(listbox)

VFP中的列表框控件(listbox) 一.列表框(listbox):主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作. 二.列表框常用属性:见下表 注1(rowsourcetype属性可指定的值): 0-无,运行时使用列表框的确良additem和addlistitem方法加入 1-值,将列表框的内容在设计时直接写在该属性中 2-表别名:由columncount确定表中选择的字段.当用户选择列表框时,记录指针将自动移到该记录上 3-sql语句:见sql部分,由执行的结果产生. 4-查询文件名:见查询部分,由查询结果产生 5-数组名 6-字段名表:可用表别名作为字段前缀.当用户选择列表项时,记录指针将自动移到该记录上7-文件名描述框架,可包含"*"和"?"来描述在列表框中显示的文件名 8-结构

9-弹出式菜单,提供向后兼容. 二.列表框常用的方法:见下表 三.列表框常用事件:列表框的常用事件为click(单击)事件和dbclick(双击)事件. 四.例:列表框练习 1.新建表单,添加一个文本框text1,三个命令按钮command1~command3,三个命令按钮的caption属性依次设为"加入","移出"和"全部移出",一个列表框list1.界面如图25 2.设置属性:将表单的caption属性设为"列表框练习",autocenter属性设为.T.;将列表框list1的moverbars属性设为.T.,multiselect属性设为.T. 3.编写代码: ●"加入"命令按钮command1的click事件: qm=thisform.text1.value IF !empty(qm) no=.t. FOR i=1 to thisform.list1.listcount IF thisform.list1.list(i)=qm &&如果文本框中输入的内容和列表框中已存在的内容相同,则不添加 no=.f. ENDIF NEXT i IF no thisform.list1.additem(qm) thisform.refresh

自写select下拉框,样式随意改

资讯管理