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

Winapi Windows Aero-以编程方式禁用视觉效果,winapi,accessibility,aero,Winapi,Accessibility,Aero,有人知道如果有API可以通过编程禁用/启用特定的Windows视觉效果,比如“启用透明玻璃”或“启用Aero Peek”吗 我所指的效果是在:系统/高级系统首选项/高级(选项卡)/性能设置/自定义中配置的效果 我正在为Windows创建一个辅助工具,我需要禁用一些视觉效果,因为它们对于视力受损的用户来说是“看不见的”。此外,我还需要为屏幕放大和颜色调整节省一些CPU周期 谢谢否,当特定应用程序正在使用运行时,可以禁用它 全局更改它是windows内部的,应该由用户来完成。Aero主题在点播透明p

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

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

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


谢谢

否,当特定应用程序正在使用运行时,可以禁用它


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

Aero主题在点播透明png和其他图像时会带来麻烦。在Aero主题中,当我使用AlphaBlend代替BitBlt,使用CpnImage代替CBitmap,并在BLENDFUNCTION::SourceConstantAlpha中将BLENDFUNCTION结构设置为0-255之间的透明度时,透明度会受到影响。当我想要有透明的背景或只是淡入半透明(不透明度0-255)时,我使用这种方法 当Aero主题打开时,所有的透明度都会消失。因此,我使用DwmEnableComposition(DWM_EC_DISABLECOMPOSITION)禁用aero主题透明度

只需将其调用到OnInitDialog()或一些早期的窗口实例函数中。这就是诀窍

AFIAK,DwmEnableComposition()完全禁用Aero,对吗?我需要桌面合成,否则放大api将无法工作。。。。
HRESULT hr = S_OK;
hr = DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
if (SUCCEEDED(hr)){
    //  Aero theme effect is off! No more swept away transparency
}