Мы размещаем наше прозрачное окно приложения над окном другого процесса. В нашем окне содержатся дочерние элементы управления. Мы создаем окно WS_EX_LAYERED, используя colorkey для выборочной прозрачности. Главное окно полностью прозрачно, поэтому оно функционирует только как контейнер для дочерних элементов управления.WS_EX_LAYERED colorkey - проблемы с Vista
Это прекрасно работает на XP и Vista без Aero. Однако, на Vista с Aero клики не проходят через прозрачную область. Что мы можем сделать?
Использование WS_EX_TRANSPARENT завершается неудачно, поэтому наши собственные элементы управления не работают, конечно.
Я рассмотрел прячась родительское окно (WS_SHOWWINDOW), но я абсолютно уверен, что это будет скрывать все дети, и AFAIK изменение размеров окна до минимального размера, с любой комбинацией CLIPCHILDREN & CLIPSIBLINGS потерпит неудачу аналогичным образом ...
Спасибо за любую помощь.
Спасибо, я знаю регионы, но я думаю, что было бы довольно утомительно создавать регионы с более чем 30 текстами и элементами кнопок. Но все же, возможно, стоит пересмотреть. – Adam
Ну, все они детские элементы управления, и легко получить их RECT – Anders
утомительно? вот почему вы программист - автоматизировать скуку. Генерация области из прямых является тривиальной, из других форм немного сложнее. но обрезка окна на основе областей намного лучше поддерживается в окнах 6.0 и 6.1, чем WS_EX_LAYERED с colorkey. –