Windows图形界面(GUI)-MFC-C/C++ - 组合框(Combo Box) - CComboBox

目录

[组合框(Combo Box) - CComboBox](#组合框(Combo Box) - CComboBox)

基本概念

成员方法

示例代码


组合框(Combo Box) - CComboBox

基本概念
  • 组合框类型:组合框可以是简单的(只能从列表中选择),也可以是下拉式的(允许用户输入和选择)。

  • 数据绑定:组合框可以绑定到数据源,以便动态显示数据。

  • 事件处理:可以响应用户的选择事件,如选择项的改变。

成员方法
  • Create:创建组合框控件并将其附加到 CComboBox 对象。

  • AddString:向组合框的列表部分添加一个字符串。

  • DeleteString:从组合框的列表部分删除一个字符串。

  • InsertString:在组合框的列表部分的指定位置插入一个字符串。

  • ResetContent:清除组合框中的所有字符串。

  • GetCount:获取组合框中字符串的数量。

  • GetCurSel:获取组合框中当前选中项的索引。

  • SetCurSel:设置组合框中当前选中的字符串。

  • GetLBText:从组合框的列表部分获取指定索引的字符串。

  • GetLBTextLen:获取组合框的列表部分指定索引的字符串长度。

  • SetDroppedWidth:设置组合框下拉列表的最小宽度。

示例代码
cpp 复制代码
void CMainDlg::OnBnClickedButton18()
{
	CString strComboText;
	m_ComboItem.GetWindowTextW(strComboText);
	if (strComboText.IsEmpty() == FALSE)
	{
		m_ComboBox.AddString(strComboText);
	}
}

void CMainDlg::OnBnClickedButton22()
{
	if (m_ComboBox.GetCount() > 0)
	{
		m_ComboBox.SetCurSel(0);
	}
}

void CMainDlg::OnBnClickedButton19()
{
	int nIndex = m_ComboBox.GetCurSel();
	if (nIndex != CB_ERR)
	{
		m_ComboBox.DeleteString(nIndex);
		OnBnClickedButton22();
	}
}

void CMainDlg::OnBnClickedButton20()
{
	int nIndex = m_ComboBox.GetCurSel();
	if (nIndex != CB_ERR)
	{
		CString strComboText;
		m_ComboItem.GetWindowTextW(strComboText);
		m_ComboBox.InsertString(nIndex, strComboText);
	}
}

void CMainDlg::OnBnClickedButton21()
{
	m_ComboBox.ResetContent();
}

void CMainDlg::OnBnClickedButton23()
{
	int nIndex = m_ComboBox.GetCurSel();
	if (nIndex != CB_ERR)
	{
		CString strComboText;
		m_ComboBox.GetLBText(nIndex, strComboText);
		AfxMessageBox(strComboText);
	}
}

void CMainDlg::OnCbnDropdownCombo2()
{
	m_ComboBox.ResetContent();

	CString strComboText;

	for (size_t i = 0; i < 5; i++)
	{
		strComboText = "Item";
		m_ComboBox.AddString(strComboText);
	}

}
相关推荐
懂点Tech28 分钟前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
catchadmin1 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
念何架构之路2 小时前
go-grpc设计思想
开发语言·后端·golang
酷炫码神3 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elastic 中国社区官方博客3 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es
tyn1884 小时前
记录本地安装nacos服务的方法及异常
java·开发语言
水饺编程4 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
步行cgn4 小时前
Spring MVC 视图机制的核心接口与类
java·开发语言·后端·spring·mvc
传奇开心果编程5 小时前
【Rust入门练中学】第5课:引用与借用
开发语言·rust·引用·编程语言理论·通用编程语言·借用
qetfw5 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash