在Vista/7中,Windows資源管理器外殼窗口利用特殊的靜態進度條來顯示硬盤空間。如何使用米式進度條?
使用默認樣式,此欄爲藍色且不帶動畫。當它接近完整時(磁盤空間不足),它也會變成紅色。
使用消息傳遞,我可以告訴Windows窗體ProgressBar控件將其狀態更新爲暫停和錯誤(分別爲黃色和紅色),這可以正常工作,但這些仍然是特定於進度。
在Windows User Experience Guidelines,它明確指出了進度條的這個「米」變種:
這種模式是不是一個進度條,但 它使用進度 欄控件來實現。儀表有獨特的 看起來與真正的 差異進步吧。
他們說這是「使用進度條控件實現的」,所以......怎麼樣?我可以向控制檯發送什麼信息使其按照這種方式行事?
我看到你可以send messages for setting the bar color,但文檔說這些調用在啓用視覺樣式時被忽略。原始ProgressBar控件的Windows API文檔中沒有其他內容似乎提供了一種方法來執行此操作。我只是堅持做一個自定義繪製的酒吧?我真的很想盡可能地利用操作系統,以便應用程序在不同的操作系統版本中顯示一致。我意識到,Vista之前的版本可能不會支持這一點,但。
我正在尋找Windows窗體解決方案,但我不知道它是否通過Win32 API甚至暴露了在所有。
對於任何感興趣的人,您可以在%ProgramFiles%\ Microsoft SDKs \ Windows \ vx.xx \ Include中找到vsstyle.h其中vx.xx是安裝的任何版本的SDK(您可能有幾個)。 http://en.wikipedia.org/wiki/Microsoft_Windows_SDK – 2010-04-20 14:43:29
也應該指出任何人有麻煩再現這一點:請注意,這將繪製到背景。如果您有面板或任何其他容器,則您需要渲染器繪製它們的繪畫事件,而不是表單的繪製事件。否則,面板會重疊,而且,正如您現在應該知道的那樣,面板實際上不是透明的,因此它看起來像您的酒吧沒有渲染。 – 2010-04-20 15:54:56
當我嘗試運行這個時,我得到'給定類,部件和狀態的組合不是由當前視覺樣式定義的''renderer.SetParameters(「PROGRESS」,11,2);'。 – 2011-06-06 15:40:16