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

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

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

1 ответ

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

case WM_NCHITTEST:              
        return HTTRANSPARENT;       

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

Другие вопросы по тегам