在Vista/7中,Windows资源管理器窗口使用一种特殊的静态进度条来显示硬盘空间。默认情况下,此进度条为蓝色且非动画。当接近满时(磁盘空间不足),它也会变成红色。
通过发送消息,我可以告诉Windows Forms ProgressBar控件将其状态更新为已暂停和错误(分别为黄色和红色),这很好用,但这些仍然是特定于进度的。
在Windows用户体验指南中,它特别指出了进度条的这种“米”变体:
我看到您可以发送设置条形颜色的消息,但文档说当启用视觉样式时,这些调用将被忽略。Windows API文档中ProgressBar控件的其他内容似乎没有建议如何做到这一点。我是否只能制作自定义绘制的条形图?我非常希望尽可能利用操作系统,以便应用程序在不同的操作系统版本中保持一致。我知道早于Vista的版本可能不支持此功能。
通过发送消息,我可以告诉Windows Forms ProgressBar控件将其状态更新为已暂停和错误(分别为黄色和红色),这很好用,但这些仍然是特定于进度的。
在Windows用户体验指南中,它特别指出了进度条的这种“米”变体:
他们说它“是使用进度条控件实现的”,那么...如何?我可以向控件发送什么消息,让它以这种方式运行?这种模式不是进度条,但它是使用进度条控件实现的。米具有与真正的进度条不同的外观。
我看到您可以发送设置条形颜色的消息,但文档说当启用视觉样式时,这些调用将被忽略。Windows API文档中ProgressBar控件的其他内容似乎没有建议如何做到这一点。我是否只能制作自定义绘制的条形图?我非常希望尽可能利用操作系统,以便应用程序在不同的操作系统版本中保持一致。我知道早于Vista的版本可能不支持此功能。
我正在寻找一个Windows Forms解决方案,但我想知道它是否通过Win32 API完全暴露出来。