Конференция "WinAPI" » "Прозрачное для мыши" окно
 
  • KSergey © (12.02.16 10:44) [0]
    Есть дочернее окно, лежащее на неком паренте.
    Есть ли в Windows штатная какая-то возможность передавать события мыши мышью ниже лежащему паренту так, как-будто эти события приходят непосредственно этому паренту?

    Задача, вероятно, упрощается тем, что речь про передачу сообщений своему паренту, а не окнам вообще (тем более не окнам других процессов).

    Как сгородить руками - примерно понятно
    1) ловить у себя, преобразовывать координаты - постить паренту
    2) делать клиентскому окну хитрую форму, обрисовывающую точно нарисованные в окне элементы (немного из другой оперы как бы, но со стороны пользователя "вижу нарисованное на паренте, в это кликаю и получаю ожидаемый результат) - одно и тоже.

    Но может есть готовый какой-то механизм, кроме 2) ?
    Возможно даже подойдёт механизм "отказаться окну получать сообщения, связанные с управлением пользователем, всё передавать паренту".

    сейчас вспомнил:  в VCL есть галка "сначала обрабатывать парентом", но там реализован по сути механизм 1), на сколько я понимаю.
  • Eraser © (12.02.16 16:04) [1]

    > KSergey ©   (12.02.16 10:44) 


    > Задача, вероятно, упрощается тем, что речь про передачу
    > сообщений своему паренту, а не окнам вообще (тем более не
    > окнам других процессов).

    вот как раз для других окон точно подойдет установка стиля WS_EX_TRANSPARENT
    насчет дочерних окон - не уверен, не проверял, возможно тоже подойдет.
  • han_malign © (16.02.16 13:37) [2]

    > (тем более не окнам других процессов)


    WM_NCHITTEST

    HTTRANSPARENT
    -1
    In a window currently covered by another window in the same thread (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).
 
Конференция "WinAPI" » "Прозрачное для мыши" окно
Есть новые Нет новых   [119539   +46][b:0][p:0]