У меня есть приложение C32 Win32 с основанным на узле графическим интерфейсом, где я создаю динамический комбинированный список с CreateWindowEx, когда пользователь нажимает определенный ключ в графическом интерфейсе. Я хочу, чтобы пользователь мог щелкнуть за пределами поля со списком, чтобы он исчез.
Для этого в настоящее время я уничтожаю комбинированный список внутри уведомления WM_KILLFOCUS о его DlgProc (поэтому любой щелчок вне его уничтожает его). Однако кажется, что уведомление WM_KILLFOCUS отправляется каждый раз, когда одно из его дочерних окон получает фокус. Например, если я щелкну в области редактирования текста в комбобоксе, сам комбобокс теряет фокус, поскольку этот дочерний элемент получает фокус. Учитывая мои настройки, это приводит к удалению поля со списком при щелчке внутри его Rect.
Как я могу предотвратить это поведение? По сути, я хочу иметь возможность обнаруживать, когда что-либо, кроме поля со списком или его дочерних окон, получает фокус, а не просто определять, теряет ли фокус поле со списком.