有没有人知道如果有一个API以编程方式禁用/启用特定的Windows视觉效果,例如“启用透明玻璃”或“启用Aero Peek”?
我所指的效果是以下配置:系统/高级系统偏好设置/高级(标签)/性能设置/自定义
我正在为Windows创建一个辅助功能工具,我需要禁用一些视觉效果,因为它们对于视障用户来说是“隐形的”。另外,我需要为屏幕放大和颜色调整节省一些CPU周期。
感谢
答案 0 :(得分:4)
不,可以在使用DwmEnableComposition()
运行特定应用程序时禁用它。
全局更改它是Windows内部的,应该由用户完成。
答案 1 :(得分:2)
当BitBlting透明png和其他图像时,Aero主题会出现问题。在Aero主题中,当我使用AlphaBlend代替BitBlt时,透明度会变得很复杂,而CPngImage代替CBitmap,并且在BLENDFUNCTION :: SourceConstantAlpha中设置BLENDFUNCTION结构,其中的透明度为0-255。当我想要透明背景或仅仅淡化为半透明(不透明度0-255)时,我使用这种方法 当Aero主题在所有透明度上一扫而光时。所以我用DwmEnableComposition(DWM_EC_DISABLECOMPOSITION)禁用了aero主题透明度;
HRESULT hr = S_OK;
hr = DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
if (SUCCEEDED(hr)){
// Aero theme effect is off! No more swept away transparency
}
只需将其调用到OnInitDialog()或一些早期的窗口实例函数中。这就是诀窍