隐藏自动完成弹出窗口的最正确方法是什么?

时间:2009-05-13 09:57:08

标签: c++ winapi autocomplete

我正在使用纯WinApi开发一个自定义自动完成控件,我遇到的问题是我不知道如何在控件外部单击时隐藏弹出窗口(例如模拟组合框下拉行为) 。通常如何实施?我应该使用鼠标捕获吗?感谢。

UPD:跟踪键盘焦点不适合账单,因为拖动父窗口也应该隐藏下拉列表。

UPD:鼠标捕获不起作用,因为它“在鼠标悬停在捕获窗口上时捕获鼠标输入,或者当鼠标悬停在捕获窗口上并且按钮仍然按下时按下鼠标按钮”。

2 个答案:

答案 0 :(得分:2)

阅读this article后,我现在相信使用SetWindowsHookEx和WH_MOUSE挂钩是可行的方法。

但也许有一个更简单的解决方案?

答案 1 :(得分:0)

Autocomplete在Win32 api(Shell)中是原生的 你不需要代码 (有关Windows Shell自动填充的源代码,请参阅Win32 group