我有一个 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/