DwmEnableComposition not enabling Aero
DwmEnableComposition not enabling Aero
我正在尝试为我的应用程序启用 Aero(一个与浏览器一起运行"单个进程"的 Firefox 插件),但我没有这样做。操作系统是Windows 7 64位。
这是代码:
BOOL bEnabled = FALSE;
if(SUCCEEDED(DwmIsCompositionEnabled(&bEnabled)) && !bEnabled){
HRESULT hres = DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
}
DwmEnableComposition应该启用组合,但它没有,该函数也返回:
S_OK
任何帮助将不胜感激,谢谢!
不能启用 DWM 组合;只能请求禁用它。当您完成需要关闭它时,您可以致电
DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
从 MSDN:
当禁用合成的所有进程都调用 DwmEnableComposition 以启用它或已终止时,将自动启用 DWM 组合。
您不必启用它,只需宣布不再需要禁用它。(Microsoft不允许你启用合成的原因是,不能信任你不尝试这样做。
你也应该在落后的时候放弃。再次来自MSDN:
注意:此函数已从 Windows 8 消费者预览版中弃用。无法再以编程方式禁用 DWM。
DwmEnableComposition()
在系统范围内禁用时不起作用。它的唯一目的是通知 Windows 您正在启动或完成与 DWM 不兼容的操作。
此外,这取决于用户他们的操作系统是什么样子,而不是由程序来配置它。
相关文章:
- QML无框窗户支撑Aero快照
- 关于 MSDN 代码示例,"Enabling and Disabling Privileges"
- Aero Snap的无边界窗口在最大化状态下过大
- DwmEnableComposition not enabling Aero
- 如何在启用Windows Aero主题时在标题栏上绘制位图图标
- 从Windows 7任务栏中禁用"Aero Blur"(使用C++?
- WinAPI Aero Glass without ATL/WTL/MFC/SDK/etc
- 如何设置Windows窗体应用程序(c++)有一个Aero/Glass背景
- 如何正确恢复窗口7/vista aero快照调整大小的窗口小部件