c++ - 如何在 CComboBoxEx 中获取当前选定的文本?
问题描述
我解决问题的第一种方法是调用CComboBoxExGetWindowsText
控件上的方法,但我发现没有关联的文本。在使用Spy++分析控件并阅读一些文档后,我意识到这些类型的控件只是经典ComboBox的父级:CComboBoxEx
我尝试在子 ComboBox 上使用该方法,作为参数GetLBText()
传递,但我只得到一些错误的文本(正确的文本应该是“英语”):GetCurSel()
我错过了什么吗?提前致谢!
解决方案
您要做的是使用Class Wizardint
将控件映射到变量:
现在可以随时轻松访问所选文本。您需要使用该GetItem
功能。例如(代码未测试):
COMBOBOXEXITEM cmbItem;
CString strText;
cmbItem.mask = CBEIF_TEXT;
cmbItem.iItem = m_cbItemIndex;
cmbItem.pszText = strText.GetBuffer(_MAX_PATH);
m_cbMyCombo.GetItem(&cmbItem);
strText.ReleaseBuffer();
简而言之,您需要使用COMBOBOXEXITEM
并使用正确的标志对其进行初始化,以说明您希望从扩展组合中获取哪些信息。那和项目索引。任务完成!
我意识到您有自己的继承类,但机制是相同的。你不使用GetLBText
. 您将结构与索引一起使用并GetItem
获取选定的文本。
推荐阅读
- opencv - 使用 opencv 查找直观的图像方向
- python - python dash应用程序中的蓝色圆圈是什么?
- firebase - 在 Firestore 文档中引用图像的正确方法
- java - 是否有一个非递归的解决方案来获取所有可能的字符串数组连接的列表?
- wordpress - 创建一个包含子页面的页面,并让每个子页面都有自己的页面模板
- asp.net-core - 不显眼的验证不适用于 ViewComponents
- python - 删除 Jupyter notebook pdf 中的命令大纲(颜色框或框架)
- r - 从序列创建组
- c++ - 对单链表进行排序时出现运行时错误
- foreach - SwiftUI - ForEach - 类型“_”没有成员“名称”