В Vista / 7 окно оболочки Windows Explorer использует специальный вид статического индикатора выполнения для отображения места на жестком диске.
При использовании стилей по умолчанию эта полоса синего цвета и не анимирована. Он также становится красным, когда приближается к заполнению (мало места на диске).
Используя обмен сообщениями, я могу сказать элементу управления Windows Forms ProgressBar обновить его состояние на «Приостановлено» и «Ошибка» (желтый и красный цвета соответственно), которые работают нормально, но они по-прежнему относятся к прогрессу.
В Windows User Guidelines конкретно указывается этот «индикаторный» индикатор выполнения:
Этот шаблон не является индикатором выполнения, но
это реализовано с использованием прогресса
панель управления. Метры имеют отчетливый
смотреть, чтобы отличить их от истинного
индикаторы выполнения.
Говорят, что "реализовано с помощью индикатора выполнения", так что ... как? Какое сообщение я могу отправить элементу управления, чтобы он так себя вел?
Я видел, что вы можете отправлять сообщения для установки цвета панели , но в документации говорится, что эти вызовы игнорируются, когда включены визуальные стили. Ничто иное в документации Windows API для необработанных элементов управления ProgressBar, казалось, не предлагало способ сделать это. Я просто застрял, делая собственный нарисованный бар? Я бы очень хотел использовать ОС всякий раз, когда это возможно, чтобы приложение выглядело согласованным для разных версий ОС. Я понимаю, что до-Vista версии, вероятно, не будут поддерживать это.
Я ищу решение для Windows Forms, но мне интересно, выставлено ли оно вообще на всех через Win32 API.