Как я могу получить тот же эффект, что и SetLayeredWindowAttributes для окон, созданных в стиле WS_CHILD? Есть ли обходной путь? Из MSDN:
Чтобы создать многоуровневое окно, укажите расширенный стиль окна WS_EX_LAYERED при вызове функции CreateWindowEx или вызовите функцию SetWindowLong, чтобы установить WS_EX_LAYERED после создания окна. После вызова CreateWindowEx многослойное окно не станет видимым, пока для этого окна не будет вызвана функция SetLayeredWindowAttributes или UpdateLayeredWindow. Обратите внимание, что WS_EX_LAYERED нельзя использовать для дочерних окон.
Прежде чем установить прозрачность дочернего объекта, сделайте это:
Сначала установите его для главного окна MDI (SetWindowLong & SetLayeredWindowAttributes), , затем оно будет работать непосредственно для дочернего элемента.
SetWindowLong
SetLayeredWindowAttributes
Дочернее окно не может быть наслоено - этот стиль действует только для окон со стилем WS_POPUP. Один из возможных способов (не столь элегантных) для решения этой проблемы - создать окно со стилем WS_POPUP и синхронизировать его положение при перемещении «родительского» окна.