win32 SDK 按钮中listbox相应

                          
               

默认状态下,列表框窗口消息处理程序只显示列表条目,它的周围没有任何边界。

你可以使用窗口风格标识号WS_BORDER 来加上边框。

另外,你可以使用窗口风格WS_VSCROLL 来增加垂直滚动条,以便用鼠标来滚动列表框条目,也可以使用WS_HSCROLL 来增加水平滚动条,可以用来显示超出列表框宽度的条目。

缺省的列表框风格不会在用户选中某个列表项时产生通知消息,这样一来,程序必须向列表框发送消息以便了解其中条目的选择状态。所以,列表框控件通常都包括列表框风格LBS_NOTIFY,它可以使列表框控件在用户进行操作时,将一些状态信息及时反馈给应用程序。

另外,如果希望列表框控件对列表框中的条目进行排序,那么可以使用另一种常用的风格LBS_SORT。

一般情况下,创建列表框控件最常用的风格组合如下:

(LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)

ListBox消息
LB_ADDSTRING新的字符串追加为列表框的最后一项
LB_INSERTSTRING字符串追加到列表框中的指定位置
LB_DELETESTRING从列表框中删除指定的条目
LB_RESETCONTENT清空列表框中的所有内容
LB_GETCOUNT获得列表框中的条目个数
LB_GETTEXTLEN确定列表框中指定条目的字符串长度
LB_SETTEXT设置列表框条目的字符串
LB_GETTEXT条目复制到文字缓冲区
LB_SETCURSEL设置当前选定的索引项
LB_GETCURSEL获得当前选定的索引项
LB_FINDSTRING希望查找的字符串指针

如果你采用LBS_SORT 风格,或者仅仅希望将新的字符串追加为列表框的最后一项,那么填入列表框最简单的方法是借助LB_ADDSTRING消息:
SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)string) 


我们也可以使用LB_INSERTSTRING指定一个索引值,将字符串插入到列表框中的指定位置:
SendMessage(hwndList, LB_INSERTSTRING,index,(LPARAM)string) 


我们可以使用LB_GETCURSEL获得当前选定的索引项:
index = SendMessage(hwndList, LB_GETCURSEL, 0, 0)


具有LBS_NOTIFY 风格的列表框可能产生的通知消息及其含义如下所示。

【这些消息可以在WindowProcedure函数中switch(message)中通过WM_COMMAND消息的case语句进行拦截,设置相应的响应函数】

ListBox可以产生的通知消息
LBN_ERRSPACE内存分配失败
LBN_SELCHANGE单项选择列表框的当前选择项发生变化
LBN_CLICKED用户在列表框的某条目上单击了鼠标左键
LBN_DBLCLK用户在列表框某条目上双击了鼠标左键
LBN_SELCANCEL用户取消了某个条目的选择
LBN_SETFOCUS列表框获得了输入焦点
LBN_KILLFOCUS列表框失去了输入焦点
LBN_CLICKCHECKMARK用户单击了条目的检查框
LBN_ENTER用户在列表框中按下ENTER键

           
               
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值