子窗口控件——列表框(List Box)

窗口类型"listbox"。默认的列表框给父窗口发送WM_COMMAND消息,所以几乎所有列表框都加LBS_NOTIFY,允许列表框发送WM_COMMAND,LBS_SORT可以让列表自动排序。LBS_MULTIPLESEL创建多选列表框。LBS_NOREDRAW会在添加列表后阻止列表更新,也可以利用WM_SETREDRAW消息。另外还可与WS_BORDER、WS_SIZEBOX、WS_CAPTION一起使用。Windows定义了常用的风格LBS_STANDARD,它定义为(LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)。

 

发给列表控件的消息

SendMessage(hwndList,LB_ADDSTRING,0,(LPARAM)szString);

SendMessage(hwndList,LB_INSERTSTRING,iIndex,(LPARAM)szString);

SendMessage(hwndList,LB_DELETESTRING,iIndex,0);

SendMessage(hwndList,LB_RESETCONTENT,0,0):清空

SendMessage(hwndList,LB_SETREDRAW,FALSE,0):如果要增加或删除多项,可以先禁用重绘

SendMessage(hwndList,LB_SETREDRAW,TRUE,0):增加或删除完成后再允许重绘

SendMessage(hwndList,LB_GETCOUNT,0,0);

SendMessage(hwndList,LB_SETCURSEL,iIndex,0):只用在单选列表框中,iIndex为-1则全不选

SendMessage(hwndList,LB_SELECTSTRING,iIndex,(LPARAM)szSearchString):选中从iIndex开始第一个szSearchString,返回选中的Index,只用在单选列表框中。

SendMessage(hwndList,LB_GETCURSEL,0,0):只用在单选列表框中

SendMessage(hwndList,LB_GETTEXTLEN,iIndex,0);

SendMessage(hwndList,LB_GETTEXT,iIndex,(LPARAM)szBuffer):返回文本长度

SendMessage(hwndList,LB_SETSEL,wParam,iIndex):用在多选中,wParam表示是否选,可为-1,都不变。

SendMessage(hwndList,LB_GETSEL,iIndex,0);

 

WM_COMMAND的通知码(notification code)

LBN_ERRSPACE、LBN_SELCHANGE、LBN_DBLCLK、LBN_SELCANCEL、LBN_SETFOCUS、LBN_KILLFOCUS

 

List Box最强大的一条消息:LB_DIR。下面的函数可以把进程当前目录中的文件显示出来,还可以列出子目录和可用磁盘驱动器:

SendMessage(hwndList,LB_DIR,iAttr,(LPARAM)szFileSpec);

iAttr是文件属性。它的低位是属性位,属性的定义有DDL_READWRITE、DDL_READONLY、DDL_HIDEN、DDL_SYSTEM、DDL_DIRECTORY和DDL_ARCHIVE;高位是控制位,DDL_DRIVES显示可用驱动,DDL_EXCLUSIVE只显示没有置位的属性文件。

szFileSpec是文件名匹配字符串,如"*.*"。

 

 

(GetEnvironmentStrings()获得系统环境变量。用完后FreeEnvironmentStrings(pSting))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值