欢迎来到天天文库
浏览记录
ID:37714329
大小:32.76 KB
页数:9页
时间:2019-05-29
《VS2010和MFC编程入门之24(常用控件:列表框控件ListBox)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VS2010MFC编程入门之二十四(常用控件:列表框控件ListBox)了解了比较常用的按钮控件,并通过按钮控件实例说明了具体用法。本文要讲的是列表框控件(ListBox)及其使用实例。列表框控件简介列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选中的项会高亮显示。列表框可分为单选列表框和多选列表框,顾名思义,单选列表框中一次只能选择一个列表项,而多选列表框可以同时选择多个列表项。列表框也会向父窗口发送通知消息。这些通知消息及含义如下:LBN_DBLCLK:用户用鼠标双击了一列表项,只有具有LBS_
2、NOTIFY的列表框才能发送该消息LBN_ERRSPACE:列表框不能申请足够的动态内存来满足需要LBN_KILLFOCUS:列表框失去输入焦点LBN_SELCANCEL:当前的选择被取消,只有具有LBS_NOTIFY的列表框才能发送该消息LBN_SELCHANGE:单击鼠标选择了一列表项,只有具有LBS_NOTIFY的列表框才能发送该消息LBN_SETFOCUS:列表框获得输入焦点WM_CHARTOITEM:当列表框收到WM_CHAR消息后,向父窗口发送该消息,只有具有LBS_WANTKEYBOARDINPUT
3、风格的列表框才会发送该消息WM_VKEYTOITEM:当列表框收到WM_KEYDOWN消息后,向父窗口发送该消息,只有具有LBS_WANTKEYBOARDINPUT风格的列表框才会发送该消息列表框控件的创建MFC将列表框控件的所有操作都封装到了CListBox类中。创建列表框控件时,可以在对话框模板中直接拖入列表框控件Listbox,然后添加控件变量使用。但如果需要动态创建列表框,就要用到CListBox类的Create成员函数了。Create成员函数的原型如下:virtualBOOLCreate(DWORDdw
4、Style,constRECT&rect,CWnd*pParentWnd,UINTnID);参数rect指定了列表框的位置和尺寸,pParentWnd为父窗口的指针,nID用于指定列表框控件的ID。最后重点讲讲参数dwStyle,它指定了列表框控件的风格,以下是各种风格说明:LBS_EXTENDEDSEL:支持多重选择,在点击列表项时按住Shift键或Ctrl键即可选择多个项LBS_HASSTRINGS:指定一个含有字符串的自绘式列表框LBS_MULTICOLUMN:指定一个水平滚动的多列列表框,通过调用CLis
5、tBox::SetColumnWidth来设置每列的宽度LBS_MULTIPLESEL:支持多重选择。列表项的选择状态随着用户对该项单击或双击鼠标而翻转LBS_NOINTEGRALHEIGHT:列表框的尺寸由应用程序而不是Windows指定。通常,Windows指定尺寸会使列表项的某些部分隐藏起来LBS_NOREDRAW:当选择发生变化时防止列表框被更新,可发送消息改变该风格LBS_NOTIFY:当用户单击或双击鼠标时通知父窗口LBS_OWNERDRAWFIXED:指定自绘式列表框,即由父窗口负责绘制列表框的内容
6、,并且列表项有相同的高度LBS_OWNERDRAWVARIABLE:指定自绘式列表框,并且列表项有不同的高度LBS_SORT:使插入列表框中的项按升序排列LBS_STANDARD:相当于指定了WS_BORDER
7、WS_VSCROLL
8、LBS_SORTLBS_USETABSTOPS:使列表框在显示列表项时识别并扩展制表符(‘t’),默认的制表宽度是32个对话框单位LBS_WANTKEYBOARDINPUT:允许列表框的父窗口接收WM_VKEYTOITEM和WM_CHARTOITEM消息,以响应键盘输入LBS_DI
9、SABLENOSCROLL:使列表框在不需要滚动时显示一个禁止的垂直滚动条dwStyle可以是以上所列风格的组合。与其他控件一样,除了这些风格一般还要为列表框控件设置WS_CHILD、WS_VISIBLE、WS_TABSTOP、WS_BORDER、WS_VSCROLL等风格。一般创建单选列表框时,风格要设置为:WS_CHILD
10、WS_VISIBLE
11、WS_TABSTOP
12、LBS_STANDARD,如果不希望列表框项排序显示则应去掉LBS_STANDARD。创建多选列表框时,只需要在单选列表框风格后添加LBS_MU
13、LTIPLESEL或LBS_EXTENDEDSEL风格。对于对话框模板中直接添加的列表框控件,其属性页中的属性包含了以上风格,例如属性Multicolumn对应的就是LBS_MULTICOLUMN风格。CListBox类的主要成员函数intGetCount()const;返回值:返回列表框中列表项的数目,如果发生错误则返回LB_ERR。intGetSel(intnInde
此文档下载收益归作者所有