共用方式為


關於進度列控件

進度列是應用程式可用來指出冗長作業進度的視窗。

它是由一個矩形所組成,這個矩形會在作業進行時產生動畫效果。

下圖顯示不使用可視化樣式的進度列。

進度列的螢幕快照,其會在一行中新增矩形,以指出進度

下圖顯示使用可視化樣式的進度列。 控件的外觀會根據作系統和選取的主題而有所不同。 如需詳細資訊,請參閱 視覺化樣式

進度列的螢幕快照,其會延長動畫綠色矩形,以指出進度

詳細資訊包含在下列標題之下。

使用進度列

您可以使用 CreateWindowEx 函式來建立進度列,並指定 PROGRESS_CLASS 視窗類別。 載入通用控制項 DLL 時,會註冊此視窗類別。 如需詳細資訊,請參閱 關於通用控制項

控件在 Microsoft Visual Studio 工具箱中也可取得,其中稱為進度控件。

範圍和目前位置

進度列的 範圍 代表整個作業持續時間,而 目前的位置 代表應用程式完成作業的進度。 視窗程式會使用範圍和目前位置來判斷進度列的百分比,以填滿醒目提示色彩。

如果您未設定範圍值,系統會將最小值設定為 0,並將最大值設定為 100。 您可以使用 PBM_SETRANGE 訊息,將範圍調整為方便的整數。

進度列提供數個訊息,可用來設定目前的位置。 PBM_SETPOS 訊息會將位置設定為指定的值。 PBM_DELTAPOS 訊息會將指定的值新增至目前位置,以推進位置。

PBM_SETSTEP 訊息可讓您指定進度列的遞增步驟。 之後,每當您將 PBM_STEPIT 訊息傳送至進度列時,目前的位置會依指定的增量前進。 根據預設,步驟增量會設定為10。

默認進度列訊息處理

本節描述 PROGRESS_CLASS 類別之視窗程式所處理的訊息。

消息 已執行處理
WM_CREATE 配置和初始化初始結構。
WM_DESTROY 釋放與進度列相關聯的所有資源。
WM_ERASEBKGND 繪製進度列的背景和框線。
WM_GETFONT 傳回目前字型的句柄。 進度列目前不會繪製文字,因此傳送此訊息不會影響控件。
WM_PAINT 繪製進度列。 如果 wParam 參數NULL,則控件會假設此值為 HDC,並使用該裝置內容繪製。
WM_SETFONT 將句柄儲存至新的字型,並將句柄傳回上一個字型。 進度列目前不會繪製文字,因此傳送此訊息不會影響控件。

 

選框樣式

藉由使用 PBS_MARQUEE 樣式建立進度列控件,您可以讓它以動畫方式顯示活動,而不會指出工作完成的比例。 進度條的醒目提示部分會沿著條的長度不斷來回移動。 您可以藉由傳送 PBM_SETMARQUEE 訊息來啟動和停止動畫,並控制其速度。 選框進度列沒有範圍或位置。

下圖顯示跑馬燈模式的進度列。 醒目提示的部分會在橫條上移動。

進度列的螢幕快照,將綠色醒目提示移至灰色矩形,以指出進度