我正在使用纯WinApi开发一个自定义自动完成控件,我遇到的问题是我不知道如何在控件外部单击时隐藏弹出窗口(例如模拟组合框下拉行为) 。通常如何实施?我应该使用鼠标捕获吗?感谢。
UPD:跟踪键盘焦点不适合账单,因为拖动父窗口也应该隐藏下拉列表。
UPD:鼠标捕获不起作用,因为它“在鼠标悬停在捕获窗口上时捕获鼠标输入,或者当鼠标悬停在捕获窗口上并且按钮仍然按下时按下鼠标按钮”。
答案 0 :(得分:2)
阅读this article后,我现在相信使用SetWindowsHookEx和WH_MOUSE挂钩是可行的方法。
但也许有一个更简单的解决方案?
答案 1 :(得分:0)
Autocomplete在Win32 api(Shell)中是原生的 你不需要代码 (有关Windows Shell自动填充的源代码,请参阅Win32 group)