c++ - ComboBoxEx32 (CComboBoxEx) 键盘行为

标签 c++ mfc winapi atl wtl

我有一个 WTL 应用程序,它使用具有 CBS_DROPDOWNLIST 样式的扩展组合框控件(Win32 类 ComboBoxEx32)。它运行良好(我可以针对框中的每个项目设置图像)但键盘行为与普通组合框不同 - 按下一个键不会跳转到组合中以该字母开头的第一个项目。

例如,如果我将字符串“Arnold”、“Bob”和“Charlie”添加到组合中,如果我随后选择该组合并按“B”,则不会选择“Bob”。

有谁知道如何使这个工作?目前我能想到的唯一想法是以某种方式子类化“实际”组合框(我可以使用 CBEM_GETCOMBOCONTROL 消息获取此句柄)并处理 WM_CHARTOITEM。这是一个 PITA,所以我想问问以前是否有其他人遇到过这个问题。

最佳答案

最后,我连接了组合框控件(通过 CBEM_GETCOMBOCONTROL 获得)并捕获了 WM_CHARTOITEM 消息并执行了我自己的查找。如果其他人有兴趣,我可以发布代码。

关于c++ - ComboBoxEx32 (CComboBoxEx) 键盘行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063553/

相关文章:

c++ - 如何在进程之间共享内核对象,例如 Waitable Timers?

windows - Windows 7 shell 中未完全显示可执行版本

map 中的 C++ find_if 元素

c++ - 随机快速排序 [某些输入崩溃]

c++ - std::chrono 乘以持续时间

c++ - 将 MFC 形式 'text' 作为 char 类型或常规字符串类型处理

c++ - CWinApp OpenDocumentFile "unsupported operation"错误

C++ 显示正常运行时间

windows - WideCharToMultiByte 何时 lpUsedDefaultChar 为 true?

python - 创建单个 python 可执行模块