Windows Aero-以编程方式禁用视觉效果



有人知道如果有API可以通过编程禁用/启用特定的Windows视觉效果,如"启用透明玻璃"或"启用Aero Peek"吗?

我所指的效果是在以下位置配置的效果:系统/高级系统首选项/高级(选项卡)/性能设置/自定义

我正在为Windows创建一个无障碍工具,我需要禁用一些视觉效果,因为它们对视力受损的用户来说是"不可见的"。此外,我需要为屏幕放大率和颜色调整节省一些CPU周期。

感谢

否,当特定应用程序使用DwmEnableComposition()运行时,可以禁用它。

全局更改它是windows内部的,实际上应该由用户完成。

Aero主题在BitBlting透明png和其他图像时会遇到麻烦。在Aero主题中,当我使用AlphaBlend代替BitBlt,使用CPngImage代替CBitmap,并在BLENDFUNCTION:SourceConstantAlpha中设置具有0-255透明度的BLENDFUUNCTION结构时,透明度会变得一团糟。当我想要有透明的背景或只是渐变为半透明(不透明度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()或一些早期的窗口实例函数中即可。这就是技巧

相关内容

  • 没有找到相关文章

最新更新