You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CTreeCtrl表头视觉样式差异:如何设置Windows现代版样式?

解决CTreeCtrl视觉样式差异的方法

1. 检查视觉样式清单配置

Windows Vista及以后的控件现代样式,需要程序通过清单文件告知系统启用。自行开发的应用大概率缺少这个配置:

  • 右键项目 → 属性 → 配置属性 → 清单工具 → 输入和输出 → 附加清单文件:确认是否引用了包含Microsoft.Windows.Common-Controls的清单。
  • 若未配置,可开启自动生成:进入配置属性 → 清单工具 → 常规,将「启用用户账户控制(UAC)」设为是 (/MANIFESTUAC),VS会自动生成包含通用控件样式的清单。

2. 手动添加清单文件(自动生成无效时)

创建名为app.manifest的文件,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="*"
                publicKeyToken="6595b64144ccf1df"
                language="*"
            />
        </dependentAssembly>
    </dependency>
</assembly>

之后在项目属性的「附加清单文件」中,指向该文件路径(例如$(ProjectDir)app.manifest)。

3. 排查控件样式设置

确保CTreeCtrl创建时未强制使用旧样式:

  • 避免在Create函数或资源编辑器中设置复古相关样式(无需手动指定XP兼容的特殊样式)。
  • 资源编辑器中右键CTreeCtrl → 属性 → 样式,确认未勾选特殊兼容选项。

4. 确认项目平台工具集

右键项目 → 属性 → 配置属性 → 常规 → 平台工具集,选择v142(VS2019默认版本),不要使用v100及以前的老旧工具集——旧工具集默认不启用现代视觉样式。

内容的提问来源于stack exchange,提问作者Michal Hadraba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:11