我试图为我的应用程序启用Aero (一个在浏览器上运行“单进程”的Firefox插件),但是我做不到。操作系统为Windows 7 64位。
代码如下:
BOOL bEnabled = FALSE;
if(SUCCEEDED(DwmIsCompositionEnabled(&bEnabled)) && !bEnabled){
HRESULT hres = DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);
}DwmEnableComposition应该启用组合,但它没有,该函数也返回:
S_OK如有任何帮助,将不胜感激,谢谢!
发布于 2012-05-04 10:48:38
不能启用DWM合成;只能请求禁用它。当您需要关闭它时,您可以调用
DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);来自MSDN:
当所有禁用了合成的进程都调用了DwmEnableComposition来启用它或已被终止时,将自动启用
DWM合成。
您不能启用它,您只需宣布您不再需要禁用它。(微软不允许您启用组合的原因是you can't be trusted to try to do it.)
当你落后的时候,你也应该放弃。同样来自MSDN:
备注从Windows8消费者预览版开始,此函数已弃用。不能再以编程方式禁用DWM。
发布于 2012-04-12 16:55:49
在系统范围内禁用DwmEnableComposition()时,它不起作用。它的唯一目的是通知Windows您正在开始或完成与DWM不兼容的操作。
此外,操作系统的外观由用户决定,而不是由程序来配置。
https://stackoverflow.com/questions/10111948
复制相似问题