释义 |
CListBox
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类的成员
构造函数 初始化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 |
|