共用方式為


平面滾動條

Microsoft Internet Explorer 4.0 引進了稱為平面滾動條的新視覺技術。 在功能上,平面滾動條的行為就像標準滾動條一樣。 差別在於您可以自定義其外觀,使其外觀大於標準滾動條。

下圖顯示包含平面滾動條的視窗。

包含平面滾動條的視窗 螢幕快照

注意

Comctl32.dll 4.71 版至 5.82 版支援平面滾動條。 Comctl32.dll 6.00 版和更新版本不支援平面滾動條。

 

使用平面滾動條

本節說明如何在應用程式中實作平面滾動條。

開始之前

若要使用一般滾動條函式,您必須在原始程序檔中包含 Commctrl.h,並與 Comctl32.lib 連結。

將平面滾動條新增至視窗

若要將平面滾動條新增至視窗,請呼叫 InitializeFlatSB,並將句柄傳遞至視窗。 您必須使用對等的FlatSB_XXX函式,而不是使用標準滾動條函式來作滾動條。 有一般滾動條函式可用於設定和擷取卷動資訊、範圍和位置。 如果視窗尚未初始化平面滾動條,則一般滾動條 API 會延遲至對應的標準函式,如果有的話。 這可讓您開啟和關閉平面滾動條,而不需要撰寫條件式程序代碼。

因為應用程式可能已經設定其一般滾動條的自定義計量,所以系統計量變更時不會自動更新。 當系統滾動條計量變更時,會廣播 WM_SETTINGCHANGE 訊息,其 wParam 設定為 SPI_SETNONCLIENTMETRICS。 若要將平面滾動條更新為新的系統計量,應用程式必須處理此訊息,並明確變更一般滾動條的計量相依屬性。

若要更新捲動條屬性,請使用 FlatSB_SetScrollProp。 下列代碼段會將一般滾動條的計量相依屬性變更為目前的系統值。

void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}

增強平面滾動條

FlatSB_SetScrollProp 可讓您修改平面滾動條,以自定義窗口的外觀。 對於垂直滾動條,您可以變更橫條的寬度和方向箭號的高度。 對於水平滾動條,您可以變更橫條的高度和方向箭號的寬度。 您也可以變更水平和垂直滾動條的背景色彩。

FlatSB_SetScrollProp 也可讓您自定義平面滾動條的顯示方式。 藉由變更WSB_PROP_VSTYLE和WSB_PROP_HSTYLE屬性,您可以設定要使用的滾動條類型。 有三種樣式可供使用。

風格 描述
FSB_ENCARTA_MODE 標準平面滾動條隨即顯示。 當滑鼠移至方向按鈕或拇指上方時,滾動條的該部分會顯示在 3D 中。
FSB_FLAT_MODE 標準平面滾動條隨即顯示。 當滑鼠移至方向按鈕或拇指上方時,滾動條的該部分將會以反轉色彩顯示。
FSB_REGULAR_MODE 會顯示一般、非充氣滾動條。 不會套用任何特殊的視覺效果。

 

拿掉平面滾動條

如果您想要從視窗移除平面滾動條,請呼叫 UninitializeFlatSB 函式,並將句柄傳遞至視窗。 此函式只會在運行時間從視窗移除平面滾動條。 當窗口終結時,您不需要呼叫此函式。