次の方法で共有


フラット スクロール バー

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 メッセージがブロードキャストされ、wParamSPI_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プロパティを変更することで、使用するスクロール バーの種類を設定できます。 3 つのスタイルを使用できます。

スタイル 形容
FSB_ENCARTA_MODE 標準のフラット スクロール バーが表示されます。 マウスが方向ボタンまたは親指の上に移動すると、スクロール バーのその部分が 3-D で表示されます。
FSB_FLAT_MODE 標準のフラット スクロール バーが表示されます。 マウスが方向ボタンまたは親指の上に移動すると、スクロール バーのその部分が反転した色で表示されます。
FSB_REGULAR_MODE 通常のフラットでないスクロール バーが表示されます。 特殊な視覚効果は適用されません。

 

フラット スクロール バーの削除

ウィンドウからフラット スクロール バーを削除する場合は、UninitializeFlatSB 関数を呼び出して、ハンドルをウィンドウに渡します。 この関数は、実行時にウィンドウからフラット スクロール バーのみを削除します。 ウィンドウが破棄されたときにこの関数を呼び出す必要はありません。