Как сделать щелкающее и прозрачное окно «всегда сверху»

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

Я помню, как видел это в приложении для замены оболочки много лет назад, но я не могу вспомнить ведьму.

Любые идеи, как добиться этого эффекта с помощью delphi или С#?

Обновлять:

Я не могу заставить предлагаемое решение работать с delphi. Возврат HTTRANSPARENT для сообщения NCHITTEST остановит все сообщения мыши, достигающие формы, но он хочет передать их следующему окну в z-порядке. Этот метод предназначен для работы во всех процессах или только для дочерних элементов определенного окна?

Однако, если я установлю флаг ExStyle WS_EX_TRANSPARENT, все щелчки мыши будут проходить в следующее окно, но я вообще не получу сообщение NCHITTEST и не смогу контролировать, где окна должны быть щелкнуты или нет. ..


person Vegar    schedule 09.02.2009    source источник


Ответы (1)


Надеемся, что эта ветка StackOverflow должна ответить на ваш вопрос.

person Noldorin    schedule 09.02.2009
comment
Спасибо! Я попробую это как можно скорее. Я тоже постараюсь лучше искать... :-) - person Vegar; 09.02.2009
comment
Примечание. Переход по клику возможен только в том случае, если окно прозрачно. Если у вас есть, скажем, ярлык или какое-то изображение, они не будут переходить по клику. - person configurator; 09.02.2009
comment
На самом деле я не уверен в этом - вы проверяли это? Если это так, вы все равно можете обойти эту проблему, перехватив все сообщения Windows для приложения и вернув результат проверки попадания. - person Noldorin; 09.02.2009