我使用如下代码将对话框显示为分层窗口:
SetLayeredWindowAttributes(modalDlg, 0, 179, LWA_ALPHA);
...并且一切都在 32 位 Windows 上运行良好。然而,在 WOW64 中,这会导致每个像素要么显示为黑色,要么根本不显示(零透明度),具体取决于我们使用的 PC。
我们有四台 64 位 Windows 测试机,两台 NVidia 和两台 Intel 视频硬件,都运行 Win7,我们尝试了每个供应商的最新视频驱动程序以及 Win7 处理的自动更新(无论如何可能是相同的驱动程序.. .)
不幸的是,其中一个(NVidia)实际上确实按预期显示了透明像素,这使问题变得混乱,这让我怀疑这确实是WOW64而不是视频驱动程序的问题,但到目前为止,每台显示这些的机器症状是64位。
如果有任何不同,对话框将显示在由 MCI 命令控制的全屏窗口播放视频上。我还在使用带有 LWA_COLORKEY 选项的 SetLayeredWindowAttributes 来显示此视频上显示的另一个对话框,但该对话框没有问题。
有任何想法吗...?