首页 > 解决方案 > 如何在 CComboBoxEx 中获取当前选定的文本?

问题描述

我解决问题的第一种方法是调用CComboBoxExGetWindowsText控件上的方法,但我发现没有关联的文本。在使用Spy++分析控件并阅读一些文档后,我意识到这些类型的控件只是经典ComboBox的父级:CComboBoxEx

间谍截图

我尝试在子 ComboBox 上使用该方法,作为参数GetLBText()传递,但我只得到一些错误的文本(正确的文本应该是“英语”):GetCurSel()

错误的文字

我错过了什么吗?提前致谢!

标签: c++user-interfacemfccomboboxex

解决方案


您要做的是使用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获取选定的文本。


推荐阅读