1

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

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

"Test 123"

组合框映射到一个CString变量m_strNotes

如果我这样做:

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

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

相反,我必须使用m_cbTextValues.SetWindowText(_T("Test"));和绕过使用m_strNotes变量。

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

4

1 回答 1

2

这是您获得的预期行为,DDX_CBString它会为选择进行前缀字符串比较。而是DDX_CBStringExact用于完全匹配。

于 2017-03-25T20:33:47.143 回答