MFC里如何实现comboboxcontrol只能选中指定str中的字符串
时间: 2024-02-18 10:00:43 浏览: 56
你可以通过重载 CComboBox 类的 PreTranslateMessage 函数来实现这个功能。在该函数中,你可以获取当前用户输入的文本,然后判断该文本是否在指定的字符串中,如果不在,则将其清除。
以下是一个示例代码:
```C++
BOOL CMyComboBox::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
CString strText;
GetWindowText(strText);
// 指定的字符串
CString strList = _T("Apple;Banana;Orange");
// 判断输入的文本是否在指定的字符串中
if (strList.Find(strText) == -1)
{
// 如果不在,则清除输入的文本
SetWindowText(_T(""));
return TRUE;
}
}
return CComboBox::PreTranslateMessage(pMsg);
}
```
在这个示例代码中,我们重载了 PreTranslateMessage 函数,并在用户按下回车键时进行判断。如果输入的文本不在指定的字符串中,则清除输入的文本。你可以根据自己的需要修改这个代码。
阅读全文