CListBox类提供Windows列表框的功能。列表框显示项的列表,如用户可以见到和选择的档案名称称。在单选列表框里,用户只可选择一个项。在多选列表框里,可选择许多项。当用户选择某项时,其高亮显示且列表框给父视窗传送一个通知讯息。
基本介绍
- 外文名:CListBox
- 功能:提供Windows列表框
- 分类:电脑
- 相关:CWnd
一:词条简介
CObject←CCmdTarget←CWnd←CListBox
CListBox类提供Windows列表框的功能。列表框显示项的列表,如用户可以见到和选择的档案名称称。在单选列表框里,用户只可选择一个项。在多选列表框里,可选择许多项。当用户选择某项时,其高亮显示且列表框给父视窗传送一个通知讯息。
可从对话模板或直接在你的代码中创建列表框。直接创建时,构造CListBox对象,再调用Create成员函式创建Windows列表框控制项并将其附加给CListBox对象。要在对话模板中使用列表框,可在对话框类中声明一个CListbox 变数,再在对话框类的DoDataExchange中使用DDX_Control连线成员变数到此控制项(当向对话框类中添加控制项变数时,ClassWizard自动为你实现)。
构造函式可以是从CListBox派生的类的一个单步进程。为派生类写构造函式并从中调用Create。如果要处理由列表框传送到其父亲(通常为从CDialog派生的类)的Windows通知讯息,为每个讯息添加讯息映射入口和讯息处理成员函式到父类。
每个讯息映射入口有以下形式:
ON_Notification( id,memberFxn )
id 指定传送通知的列表框控制项的子视窗,memberFxn 是编写处理通知的父成员函式名的地方。
父函式原型如下:
afx_msg void memberFxn( );
下面是可能的讯息映射入口列表和描述它们可能被传送到父亲的情况:
ON_LBN_DBLCLK 用户双击列表框中的字元串。只有LBS_NOTIFY风格的列表框才会传送此通知讯息。
ON_LBN_ERRSPACE 列表框不能重新分配足够的记忆体来满足请求。
ON_LBN_KILLFOCUS 列表框正失去输入焦点。
ON_LBN_SELCANCEL 当前列表框选择被取消。此讯息只有在列表框是LBS_NOTIFY风格时才传送。
ON_LBN_SELCHANGE 列表框中的选择可能改变。如果选择被CListBox::SetCurSel成员函式改变,则通知不传送。此通知只适用于LBS_NOTIFY风格的列表框。无论何时用户按下箭头键,即使选择未改变,LBN_SELCHANGE通知讯息都被传送给多选列表框。
ON_LBN_SETFOCUS 列表框正在接收输入焦点。
ON_WM_CHARTOITEM 一个无字元串的自绘製列表接受WM_CHAR讯息。
ON_WM_VKEYTOITEM LBS_WANTKEYBOARDINPUT风格的列表框接受WM_KEYDOWN讯息。
如果在对话框中构造一个CListBox对象(通过对话资源),当用户关闭对话框时,CListBox对象自动毁弃。
如果在视窗中构造一个CListBox对象,可能需要毁弃CListBox对象。如果在栈上创建CListBox对象,它会自动毁弃。如果使用new函式在堆上创建CListBox对象,必须对此对象调用delete来在用户关闭父视窗时毁弃它。
如果在CListBox对象中分配记忆体,可覆盖CListBox析构程式释放分配的记忆体。
#include <afxwin.h>
请参阅:CWnd, CButton, CComboBox, CEdit, CScrollBar, CStatic
二:类成员
CListBox类的成员
构造函式 CListBox 构造一个CListBox对象
初始化 Create 创建Windows列表框并附加给CListBox对象
InitStorage 为列表框的项和字元串预分配记忆体块
一般操作 GetCount 返回列表框中的字元串数目
GetHorizontalExtent 返回列表框的水平宽度,用像素表示
SetHorizontalExtent 设定列表框的水平宽度,用像素表示
GetTopIndex 返回列表框中第一个可见字元串的索引
SetTopIndex 设定列表框中第一个可见字元串的基于零的索引
GetItemData 返回与列表框有关的32位值
GetItemDataPtr 返回指向列表框的指针
SetItemData 设定列表框有关的32位值
SetItemDataPtr 设定指向列表框的指针
GetItemRect 返回当前显示的列表框项的相应矩形
ItemFromPoint 返回与某点最近的列表框项的索引
SetItemHeight 设定列表框中项的高度
GetItemHeight 确定列表框中项的高度
GetSel 返回列表框某项的选择
GetText 拷贝某列表框项到缓冲区
GetTextLen 返回列表框的位元组长
SetColumnWidth 设定多列列表框的列宽
SetTabStops 设定列表框製表键停止位置
GetLocale 获取列表框的地点标识符
SetLocale 设定列表框的地点标识符
单选操作 GetCurSel 返回列表框中当前选择串的基于零的索引
SetCurSel 选择一个列表框字元串
多选操作 SetSel 在多选列表框中选择或不选某个列表框项
GetCaretIndex 确定在多选列表框中有焦点矩形的项的索引
SetCaretIndex 设定焦点矩形到多选列表框中的指定的索引项
GetSelCount 返回多选列表框中当前选择的字元串的数目
GetSelItems 返回列表框中当前选择的字元串的索引
SelItemRange 选择/不选多选列表框中的一些字元串
SetAnchorIndex 设定多选列表框的锚点以开始扩展选择
GetAnchorIndex 获取列表框当前锚点项的基于零的索引
字元串操作 AddString 添加一个字元串到列表框中
DeleteString 从列表框中删除一个字元串
InsertString 在列表框中指定位置插入一个字元串
ResetContent 清空列表框所有入口
Dir 从当前目录添加档案名称称到列表框中
FindString 在列表框中查找一个字元串
FindStringExact 查找与指定的字元串匹配的第一个列表框字元串
SelectString 查找并选择单选列表框中的一个字元串
可覆盖的函式 DrawItem 当自绘製列表框的一个可视部分改变时,被框架调用
MeasureItem 当自绘製列表框创建时,被框架调用来确定列表框维数
CompareItem 被框架调用以确定一系列列表框中某新项的位置
DeleteItem 当用户从自绘製列表框中删除某项时,被框架调用
VKeyToItem 覆盖以提供LBS_WANTKEYBOARDINPUT风格列表框的设定所需的定製WM_KEYDOWN
CharToItem 覆盖以提供不含字元串的自绘製列表框定製WM_CHAR
三:构造函式
CListBox::CListBox
CListBox( );
说明:
分两步构造一个CListBox对象。首先调用构造函式CListBox,再调用Create,初始化Windows列表框并将其附加给CListBox。
请参阅:CListBox::Create