【发布时间】:2015-09-09 08:38:48
【问题描述】:
在将鼠标指针移到下拉列表框上时,是否有任何关于 WinAPI 组合框控件的通知消息可以用来知道当前项何时发生更改?
我的期望是CBN_SELCHANGE 通知也应该适用于鼠标,但不幸的是,它仅在我们使用键盘更改选择或用鼠标单击项目时发送。
【问题讨论】:
-
CBN_SELCHANGE仅在选择真正改变时发布。将鼠标移到下拉列表框上只会更改瞬态,以呈现列表中的项目。为什么你需要了解这个实现细节? (如果你真的、真的、想要的话,你可以继承一个标准的组合框控件并自己处理鼠标消息。)。 -
@IInspectable,在我正在处理组合框的项目中,实现增量搜索。并且当指针在下拉列表框上移动时更改选择时,我们需要取消搜索。目前我们有一个处理 WM_MOUSEMOVE 并使用 CB_GETTOPINDEX 查找鼠标指针下项目的索引的例程。但显然应该有一种更简单的方法,因为组合框控件本身就是这样做的。
-
你要重新发明Autocomplete吗?如果是这样,请考虑使用系统提供的实现。
-
@IInspectable,我们的项目中没有组合框的编辑部分。我们利用 WinAPI 组合的下拉部分为 ListView 等其他控件实现自定义编辑器。
-
您的问题的答案是“不,没有通知消息”。解决方案是子类化并自己解决。
标签: winapi combobox notifications mousehover selectionchanged