WOW64 SetLayeredWindowAttributes LWA_ALPHA - PullRequest
3 голосов
/ 02 марта 2012

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

SetLayeredWindowAttributes(modalDlg, 0, 179, LWA_ALPHA);

... и все прекрасно работает в 32-битной Windows.Однако в WOW64 это приводит к тому, что каждый пиксель либо выглядит черным, либо вообще не отображается (нулевая прозрачность), в зависимости от того, какой ПК мы используем.

У нас есть четыре тестовых машины для 64-битной Windows, две с NVidia и двес видеооборудованием Intel, все работают под управлением Win7, и мы опробовали последние видеодрайверы от каждого поставщика, а также автоматическое обновление, обработанное Win7 (вероятно, тот же драйвер в любом случае ...)

К сожалению, вопрос запутанТот факт, что ОДИН из них (NVidia) действительно отображает прозрачные пиксели, как и ожидалось, заставляет меня сомневаться, что это действительно проблема с WOW64, а не с видеодрайверами, но до сих пор каждая машина, которая показывает эти признаки, является 64-битной.

Если есть какая-либо разница, диалоговое окно отображается поверх полноэкранного окна воспроизведения видео, управляемого командами MCI.Я также использую SetLayeredWindowAttributes с опцией LWA_COLORKEY для другого диалога, отображаемого поверх этого видео, но с этим проблем нет.

Есть идеи ...?

...