更新可编辑组合的文本值时出现问题

问题描述 投票:0回答:1

我的对话框上有一个简单的可编辑组合框。

下拉列表中有几个预定义的文本值。其中一项是:

"Test 123"

组合框映射到

CString
变量
m_strNotes

如果我这样做:

m_strNotes = _T("Test");
UpdateData(FALSE);

我发现组合框最终选择了“Test 123”!

相反,我必须使用

m_cbTextValues.SetWindowText(_T("Test"));
并使用
m_strNotes
变量进行绕过。

为什么我必须这样做?由于

CComboBox
可以编辑,因此文本不必位于下拉列表中。那么,当我使用前一种方法时,为什么它不只设置编辑文本而不尝试在下拉列表数据中找到合适的匹配项?

mfc visual-studio-2017 ccombobox
1个回答
2
投票

这是使用

DDX_CBString
获得的预期行为,它会比较选择的前缀字符串。而是使用
DDX_CBStringExact
进行精确匹配。

© www.soinside.com 2019 - 2024. All rights reserved.