鱼C论坛

 找回密码
 立即注册
查看: 7633|回复: 1

[技术交流] 【MFC入门文字教程】10-下拉列表(CComboBox)

[复制链接]
发表于 2016-11-15 18:49:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 无符号整形 于 2016-11-15 19:38 编辑

如果你不喜欢 ListBox,那么 ComboBox 就是一个很好的选择。如果对一个 ComboBox 类型的控件添加变量,那么变量就是 CComboBox 类型的。

把项目添加到 ComboBox 的两种方法:
1.静态,修改 Data 属性
按照提示,更改 Data 属性就行了~
2016-11-15 (1).png
2.使用 AddString 成员函数(到时候会讲解

ComboBox 有3种样式,可以通过修改Type属性修改。
1.简单(Simple)
PS:使用这种样式时要把ComboBox的竖向尺寸调大些。
87.JPG
这种样式允许用户自定义内容,列表是一直下拉的。
2.下拉(Dropdown)
88.JPG
这种样式也允许用户自定义内容,输入框旁边有一个小箭头,点他下拉列表就出来了。
3.下拉列表(Drop List)
89.JPG
这种样式不允许用户自定义内容,输入框旁边有一个小箭头,点他下拉列表就出来了。

一般的话就会用Drop List。

那么,有什么成员函数呢?
名称 作用
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_DROPDOWN或CBS_DROPDOWNLIST样式的组合框选择默认用户界面或扩展用户界面。
CComboBox::SetHorizontalExtent 设置组合框的列表框部分可以水平滚动的宽度(以像素为单位)。
CComboBox::SetItemData 在组合框中设置与指定项目关联的32位值。
CComboBox::SetItemDataPtr 在组合框中设置与指定项目相关联的32位指针。
CComboBox::SetItemHeight 设置组合框中列表项的高度或组合框的编辑控件(或静态文本)部分的高度。
CComboBox::SetLocale 设置组合框的区域设置标识符。
CComboBox::SetMinVisibleItems 设置当前组合框下拉列表中可见项目的最小数量。
CComboBox::SetTopIndex 指示组合框的列表框部分显示顶部具有指定索引的项目。
名称 作用
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_DROPDOWN或CBS_DROPDOWNLIST样式的组合框选择默认用户界面或扩展用户界面。
CComboBox::SetHorizontalExtent 设置组合框的列表框部分可以水平滚动的宽度(以像素为单位)。
CComboBox::SetItemData 在组合框中设置与指定项目关联的32位值。
CComboBox::SetItemDataPtr 在组合框中设置与指定项目相关联的32位指针。
CComboBox::SetItemHeight 设置组合框中列表项的高度或组合框的编辑控件(或静态文本)部分的高度。
CComboBox::SetLocale 设置组合框的区域设置标识符。
CComboBox::SetMinVisibleItems 设置当前组合框下拉列表中可见项目的最小数量。
CComboBox::SetTopIndex 指示组合框的列表框部分显示顶部具有指定索引的项目。
CComboBox::ShowDropDown 显示或隐藏具有CBS_DROPDOWN或CBS_DROPDOWNLIST样式的组合框的列表框。

大家研究一下这个表,怎么添加字符串?怎么获取当前选择的项?(提示:可以先获取选择的项的索引然后再获取项名称)

实践时间
目标:添加一个下拉列表,里面有如下内容
Fishc
Fishc.com

当用户按下按钮时,告诉用户选择了什么。
开始搞吧~
1.拖一个按钮和一个下拉列表(记得把样式设置为Drop List),给下拉列表添加一个变量,建议把名称设置为m_combobox,给按钮添加一个事件处理程序。
2016-11-15 (3).png
2.在OnInitDialog函数中增加如下内容:
m_combobox.AddString(L"Fishc");
        m_combobox.AddString(L"Fishc.com");
3.在事件处理程序中添加如下内容:
        CString c;//缓冲区

        m_combobox.GetLBText(m_combobox.GetCurSel(), c);  //获取内容

        MessageBox(c, TEXT("您选择的内容"), MB_OK);

然后编译运行~

效果:
MFC9900.gif
很激动把~

下节预告:
单选框 (Radio Button)

评分

参与人数 1荣誉 +8 鱼币 +8 贡献 +5 收起 理由
拈花小仙 + 8 + 8 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-3 22:24:09 | 显示全部楼层
设置默认值: m_combox.SetCurSel(0);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 22:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表