Игнорировать HWND из WindowFromPoint ()

Я создаю систему стыкуемых окон в Win32 C ++. Чтобы в реальном времени получать информацию о том, куда вы перетаскиваете новое окно, я создал специальное окно отладки, которое появляется только во время перетаскивания и показывает, где оно будет пристыковано. Чтобы узнать, какая панель будет пристыкована, мне нужно учесть перекрывающиеся окна и найти самые верхние. Для этого я вызываю WindowFromPoint (x, y), который находит HWND непосредственно под мышью. Это вызывает проблему, потому что когда отображается окно отладки, оно перехватывается WindowFromPoint, я хотел бы игнорировать его.
Я приложил картинку.введите описание изображения здесь

Если у кого-то есть альтернативные предложения по этому плану, я буду рад его услышать. Я думал о том, чтобы сохранить какой-то список порядка окон и отслеживать каждый раз, когда новое окно фокусируется, но это тоже большая головная боль …

0

Решение

Ладно, я понял! У меня была правильная идея, но я не понял, что глобальное решение возврата 0 было плохой идеей в оконной процедуре. Вот верное возвращение:

case WM_NCHITTEST:
return HTTRANSPARENT;

Благодаря этой теме: Найти все окна под точкой

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector