Я отображаю диалоговое окно в виде многоуровневого окна, используя такой код:
SetLayeredWindowAttributes(modalDlg, 0, 179, LWA_ALPHA);
... и все прекрасно работает в 32-битной Windows.Однако в WOW64 это приводит к тому, что каждый пиксель либо выглядит черным, либо вообще не отображается (нулевая прозрачность), в зависимости от того, какой ПК мы используем.
У нас есть четыре тестовых машины для 64-битной Windows, две с NVidia и двес видеооборудованием Intel, все работают под управлением Win7, и мы опробовали последние видеодрайверы от каждого поставщика, а также автоматическое обновление, обработанное Win7 (вероятно, тот же драйвер в любом случае ...)
К сожалению, вопрос запутанТот факт, что ОДИН из них (NVidia) действительно отображает прозрачные пиксели, как и ожидалось, заставляет меня сомневаться, что это действительно проблема с WOW64, а не с видеодрайверами, но до сих пор каждая машина, которая показывает эти признаки, является 64-битной.
Если есть какая-либо разница, диалоговое окно отображается поверх полноэкранного окна воспроизведения видео, управляемого командами MCI.Я также использую SetLayeredWindowAttributes с опцией LWA_COLORKEY для другого диалога, отображаемого поверх этого видео, но с этим проблем нет.
Есть идеи ...?