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

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

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

最佳答案

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

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

10-11 19:03