Win32 Visual Styles向后兼容性?

Bra*_*ler 1 winapi platform operating-system version visual-styles

当我在我的程序中嵌入Visual Styles清单时,如下所示:

// Embed visual style XML manifest
#pragma comment(linker,                           \
    "\"/manifestdependency:type='Win32'"          \
    "   name='Microsoft.Windows.Common-Controls'" \
    "   version='6.0.0.0'"                        \
    "   processorArchitecture='*'"                \
    "   publicKeyToken='6595b64144ccf1df'"        \
    "   language='*'\""                           \
)

// Link common controls library
#pragma comment(lib, "ComCtl32.lib")
Run Code Online (Sandbox Code Playgroud)

这是否意味着我的程序只能在Windows XP上运行?或者,如果计算机上没有视觉样式,他们只会使用操作系统默认样式吗?我问,因为我在我的程序中启用了Visual Studio 2008开发的视觉样式,我想知道它可以运行的最早版本的Windows是什么.我应该检查WINVER他们是否运行支持视觉样式的版本?如果是这样,我应该在预处理器中检查哪个版本号.我想知道的另一件事是,没有视觉风格,我可以运行程序的最低版本是什么?

Mik*_*wan 6

这是否意味着我的程序只能在Windows XP上运行?或者,如果计算机上没有视觉样式,他们只会使用操作系统默认样式吗?

后者是正确的,文档定义了确切的行为(重点是我的):

如果希望应用程序使用可视样式,则必须添加应用程序清单或编译器指令,指示如果可用,则应使用 ComCtl32.dll版本6 .

同一页面中的另一部分介绍了在向后兼容性方面应注意的一些事项:使应用程序与早期版本的Windows兼容.在视觉风格上,它指出:

许多视觉样式架构旨在使您可以轻松地继续在早期版本的Windows上发布不支持更改控件外观的产品.