CComboBox Class

提供Windows组合框的功能。

class CComboBox : public CWnd

成员

公共构造函数

名称

说明

CComboBox::CComboBox

构造 CComboBox 对象。

公共方法

名称

说明

CComboBox::AddString

添加一个字符串到列表的末尾在组合框的列表框中,或在已排序的位置具有 CBS_SORT 样式的列表框。

CComboBox::Clear

删除(清除)当前选择,如果有,则在编辑控件。

CComboBox::CompareItem

调用由框架确定相对位置新列表中的已排序的所有者描述的组合框中的项。

CComboBox::Copy

复制当前选择,如果有,在剪贴板上。CF_TEXT 格式。

CComboBox::Create

创建组合框并将它附加到 CComboBox 对象。

CComboBox::Cut

删除(剪辑)当前选择,如果有,则在编辑控件和复制到剪贴板已删除的文本的 CF_TEXT 格式。

CComboBox::DeleteItem

调用由结构,在列表项从一个所有者描述的组合框中删除。

CComboBox::DeleteString

从组合框的列表框删除字符串。

CComboBox::Dir

添加文件名称列表。组合框的列表框。

CComboBox::DrawItem

调用由结构,在一个所有者描述的组合框的可视方面是更改。

CComboBox::FindString

查找在组合框的列表框包含指定的前缀的第一个字符串。

CComboBox::FindStringExact

查找第一个列表框字符串(在组合框)。与指定字符串。

CComboBox::GetComboBoxInfo

检索有关 CComboBox 对象的信息。

CComboBox::GetCount

检索项的数目在组合框的列表框中。

CComboBox::GetCueBanner

获取的组合框控件中显示的提示文本。

CComboBox::GetCurSel

检索当前选定项的索引,如果有,在组合框的列表框。

CComboBox::GetDroppedControlRect

检索屏幕坐标可见(拉)一个下拉组合框中的列表框。

CComboBox::GetDroppedState

确定一个下拉组合框中的列表框是否可见(拉)。

CComboBox::GetDroppedWidth

检索组合框的下拉式列表框部分的最小值允许的宽度。

CComboBox::GetEditSel

获取当前选择的开始和结束字符位置在组合框中编辑控件。

CComboBox::GetExtendedUI

确定组合框是否具有默认的用户界面或扩展的用户界面。

CComboBox::GetHorizontalExtent

返回在像素宽度组合框的列表框部分可以水平滚动。

CComboBox::GetItemData

检索该由应用程序提供的32位值与指定的组合框项。

CComboBox::GetItemDataPtr

检索与指定的组合框中的项由应用程序提供的32位指针。

CComboBox::GetItemHeight

检索高度列表在组合框中的项。

CComboBox::GetLBText

从组合框的列表框中获取字符串。

CComboBox::GetLBTextLen

获取一个字符串的长度在组合框的列表框中。

CComboBox::GetLocale

检索组合框的区域设置标识符。

CComboBox::GetMinVisible

获取可见项的最小值在下拉列表当前组合框。

CComboBox::GetTopIndex

返回第一个可视项的索引在组合框中的列表框部分。

CComboBox::InitStorage

预分配块项目和字符串的内存组合框的列表框部分。

CComboBox::InsertString

插入到组合框的列表框中。

CComboBox::LimitText

限制用户可以输入组合框编辑控件的文本的长度。

CComboBox::MeasureItem

调用由框架确定组合框维度,在一个所有者描述的组合框中创建。

CComboBox::Paste

从剪贴板中的数据到当前光标的编辑控件中确定的插入。 数据,仅当剪贴板在 CF_TEXT 格式,包含数据插入。

CComboBox::ResetContent

从列表框中移除所有项和组合框的编辑控件。

CComboBox::SelectString

搜索在组合框的列表框中的字符串和,因此,如果找到该字符串,选择列表框中的字符串并复制该字符串到编辑控件。

CComboBox::SetCueBanner

设置为组合框控件中显示的提示文本。

CComboBox::SetCurSel

选择在组合框的列表框中的字符串。

CComboBox::SetDroppedWidth

设置组合框的下拉式列表框部分的最小值允许的宽度。

CComboBox::SetEditSel

选择在组合框中编辑控件的字符。

CComboBox::SetExtendedUI

对于 CBS_DROPDOWNCBS_DROPDOWNLIST 样式中的组合框中选择默认的用户界面或扩展的用户界面。

CComboBox::SetHorizontalExtent

将像素宽度组合框的列表框部分可以水平滚动。

CComboBox::SetItemData

将32位值与在组合框中的指定项。

CComboBox::SetItemDataPtr

将32位指针与在组合框中的指定项。

CComboBox::SetItemHeight

设置高度列表在组合框中的项或组合框的编辑控件(或静态文本)部分的高度。

CComboBox::SetLocale

设置组合框的区域设置标识符。

CComboBox::SetMinVisibleItems

设置可见项的最小值在下拉列表当前组合框。

CComboBox::SetTopIndex

调用组合框的列表框部分显示具有指定索引的项目位于顶部。

CComboBox::ShowDropDown

显示或隐藏具有 CBS_DROPDOWNCBS_DROPDOWNLIST 样式组合框的列表框。

备注

组合框包含列表框将与静态控件或编辑控件。 当用户在控件旁边时,选择下拉箭头将控件的列表框部分可能一直显示或只能拉。

当前选定项(如果有)在列表框在静态显示或编辑控件。 此外,在中,如果组合框线下拉列表样式,用户可以键入初始字符一个列表中的项,并且,列表框,因此,如果可见,将显示与初始字符的下一项。

下表比较了三个组合框 样式

样式

何时为列表框中可见?

静态或编辑控件?

简单

始终

Edit

下拉列表

在下拉

Edit

下拉列表

在下拉

Static

您可以创建一 CComboBox 对象从对话框模板或直接在代码。 在这两种情况下,首次调用构造函数 CComboBox 构造 CComboBox 对象;然后调用 创建 成员函数创建控件并将其附加到 CComboBox 对象。

如果希望处理Windows组合框发送的通知消息到其父(通常从 CDialog派生的选件类)中,添加一个消息映射项和消息处理程序成员函数为每个消息的父选件类。

每个消息映射项采用以下形式:

ON_通知(id,memberFxn)

其中 id 指定发送组合框控件的子窗口ID通知和 memberFxn 是您处理编写通知父成员函数的名称。

父的函数原型如下所示:

afx_msgvoidmemberFxn**(**);

某些通知要发送的顺序并不可预知。 具体而言,CBN_SELCHANGE 通知可以在 CBN_CLOSEUP 通知前后发生其中之一。

潜在的消息映射项如下:

  • ON_CBN_CLOSEUP (Windows 3.1和更高版本。)组合框的列表框关闭。 此通知信息不具有 CBS_SIMPLE 样式的组合框发送。

  • ON_CBN_DBLCLK 用户双击在组合框的列表框中的字符串。 此通知信息对于 CBS_SIMPLE 样式的组合框只发送。 对 CBS_DROPDOWNCBS_DROPDOWNLIST 样式的组合框,因为单个单击隐藏列表框,在中,双击不能出现。

  • ON_CBN_DROPDOWN 组合框的列表框将下拉(使可见)。 此通知消息可能具有 CBS_DROPDOWNCBS_DROPDOWNLIST 样式的组合框仅发生。

  • ON_CBN_EDITCHANGE 用户获得的可能修改了在组合框中编辑控件部分文本的操作。 不同 CBN_EDITUPDATE 消息,此信息在Windows更新后发送屏幕。 它,如果组合框包含 CBS_DROPDOWNLIST 样式,不发送。

  • ON_CBN_EDITUPDATE 组合框的编辑控件部分将显示修改后的文本。 发送此通知信息,控件格式化文本后,该但是,它显示文本之前。 它,如果组合框包含 CBS_DROPDOWNLIST 样式,不发送。

  • ON_CBN_ERRSPACE 组合框不能分配的内存量已经足以满足特定请求。

  • ON_CBN_SELENDCANCEL (Windows 3.1和更高版本。)指示应该移除用户的选择。 用户单击项并单击另一个窗口或控件隐藏组合框的列表框。 此通知发送消息,请在 CBN_CLOSEUP 通知消息之前应忽略用户的选择。 发送 CBN_SELENDCANCELCBN_SELENDOK 通知信息,即使没有发送 CBN_CLOSEUP 通知信息(对于包含 CBS_SIMPLE 样式的组合框)。

  • ON_CBN_SELENDOK 用户选择一个项目然后按以下键或单击向下键隐藏组合框的列表框。 此通知发送消息,请在 CBN_CLOSEUP 消息之前应考虑用户的选择活动。 发送 CBN_SELENDCANCELCBN_SELENDOK 通知信息,即使没有发送 CBN_CLOSEUP 通知信息(对于包含 CBS_SIMPLE 样式的组合框)。

  • ON_CBN_KILLFOCUS 组合框失去输入焦点。

  • ON_CBN_SELCHANGE 在组合框的列表框中选择将因单击列表框或更改选择的用户通过使用箭头键。 当处理此消息时,组合框的编辑控件的文本可以通过 GetLBText 或另一个类似的功能仅检索。 无法使用 GetWindowText

  • ON_CBN_SETFOCUS 组合框接收输入焦点。

如果要创建在对话框中的一 CComboBox 对象(通过对话框资源),自动销毁 CComboBox 对象,当用户关闭对话框时。

如果嵌入在另一个窗口对象中的一 CComboBox 对象,则不需要销毁它。 如果在堆栈上创建 CComboBox 对象,自动销毁它。 使用 new 功能,如果要创建在堆的 CComboBox 对象,则必须对对象的 delete 销毁它,当销毁时Windows组合框。

Note,如果希望处理 WM_KEYDOWNWM_CHAR 消息,则必须子类组合框中编辑和列表框控件,从 CEditCListBox派生选件类,并将这些消息的处理程序添加到派生类。 有关更多信息,请参见 https://support.microsoft.com/default.aspx?scid=kb;en-us;Q174667CWnd::SubclassWindow

继承层次结构

CObject

CCmdTarget

CWnd

CComboBox

要求

**标头:**afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd 类

CButton Class

CEdit Class

CListBox Class

CScrollBar 类

CStatic 类

CDialog Class

概念

MFC示例CTRLBARS