【问题标题】:XP-Styles not working for ListView or ComboBox in Windows XPXP 样式不适用于 Windows XP 中的 ListView 或 ComboBox
【发布时间】:2012-06-12 08:13:46
【问题描述】:

我正在为 XP 样式使用 Manifest,因此我的所有控件都使用新外观。但是,如果我在 Windows XP 中运行我的程序,那么我的 ListView 控件将显示旧样式的平面标题。 HDS_NOSIZING 样式也不适用于标题。这似乎暗示 XP 使用的是旧的 Common Controls 5.0 版本的列表视图,而不是 6.0。

我对这整件事感到非常困惑。我听说 Common Controls 6.00 随 XP 一起提供,那为什么我不能在 XP 中使用最新的 ListView?

我在另一个页面上读到 XP-Styles 仅适用于 XP 的 Common Controls 5.0 ListViews 但不适用于 6.0。因此,如果它确实使用 5.0,那么它不应该将新的 XP-Styles 应用于列表视图吗?

是否真的可以使用某些控件的 Common Controls 6.0 版本和其他控件的 5.0 版本?

还有另一件事。在 XP 中,我的 ComboBox 下拉列表看起来像常规的 Combo 框,而不是像 Win7 中那样的按钮。这正常吗?

感谢您的帮助,因为我发现整个 Common Controls 6.0 + XP Styles 概念非常混乱。

【问题讨论】:

  • 什么语言?你的电话是InitCommonControls()吗?
  • “它只适用于 v5 通用控件”是 VB6 的东西。 VB通用控件6不使用标准win32控件,因此不支持主题,v5 1 DO使用标准win32控件,因此将使用清单中指定的任何版本。

标签: winapi windows-7 windows-xp


【解决方案1】:

您希望在 Windows XP 上重新看到 Windows 7 样式。那是行不通的。 XP 显示扁平标题,HDS_NOSIZING 仅在 Vista 及更高版本中受支持。同样,带有 CBS_DROPDOWNLIST 的组合框仅在 Vista 及以上版本中显示为按钮。

您的程序很可能完全按照应有的方式运行,并且显示了正确的 XP 样式。您可以使用调试器仔细检查。 Debug + Windows + Modules 看看加载的comctl32.dll的版本号

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多