Visual スタイルの概要
このトピックでは、ビジュアル スタイルについて説明し、それらをサポートする Windows コンポーネントを識別します。 さらに、アプリケーションでビジュアル スタイルを使用するために実行する必要がある手順についても説明します。 このトピックのセクションは次のとおりです。
Themes and Visual Styles (テーマと視覚スタイル)
Windows には、ユーザーが個々のニーズや好みに合わせて UI を調整可能にするいくつかの機能が用意されています。 これらの機能には、Microsoft Plus! for Windows 95 で導入されたテーマが含まれています。 テーマは、壁紙、カーソル、フォント、サウンド、アイコンを含む、ユーザーが選択可能な設定のコレクションです。 テーマには、次のような特徴があります。
- テーマの設定は、win.ini ファイルのような形式の .theme ファイルで指定されます。
- 独立系ソフトウェア ベンダー (ISV) は、製品と共に .theme ファイルを作成して配布することができます。
- Windows Vista より前のバージョンでは、[ディスプレイ] コントロール パネルの [テーマ] タブにテーマ ファイルが表示されます。 Windows Vista 以降では、[個人用設定] コントロール パネルにテーマが表示されます。
.theme ファイルについて詳しくは、「テーマ ファイル形式」をご覧ください。
ビジュアル スタイルは、Windows 共通コントロールの外観を定義する仕様です。 ビジュアル スタイルはテーマに関連付けられます。つまり、.theme ファイルには、特定のテーマがアクティブな場合に適用されるビジュアル スタイルを指定するセクションが含まれています。 ビジュアル スタイルの特性を次に示します。
- ユーザーは、別のテーマを選択することにより、いつでもビジュアル スタイルを変更できます。
- ビジュアル スタイル API を使用して、現在アクティブなビジュアル スタイルをアプリケーションのカスタム コントロールまたはオーナー描画コントロール (存在する場合) に適用する必要があります。
- ビジュアル スタイルを定義する情報は、.msstyles ファイルに格納されます。 Microsoft では、.msstyles ファイルの作成はサポートされていません。
次の図は、透明度のない Windows Aero テーマを使用する Windows 7 デスクトップ上における、タスク バーを含む単純なダイアログ ボックスを示しています。 ビジュアル スタイルを使用するようアプリケーションが構成されていないため、テーマの設定に関係なく、ボタンは同じように表示されます。
これに対し、次の図は同じデスクトップ上の同じダイアログ ボックスを示していますが、今回はアプリケーションがビジュアル スタイルを使用するよう構成されています。 クライアント領域のボタンの外観が異なる点に注意してください。 Aero テーマで定義されているビジュアル スタイルがシステムによって適用されているため、ボタンの外観が異なります。
次の例は、Windows 8 デスクトップ上の同様のダイアログ ボックスを示しています。 Windows 8 では、ビジュアル スタイルは常にオンになっているため、Windows 8 アプリはテーマを "無料で" 取得できます。
ビジュアル スタイル コンポーネント
ビジュアル スタイルは、以下のコンポーネントでサポートされています。
- 共通コントロール ライブラリのバージョン 6 以降 (ComCtl32.dll)
- UxTheme.dll で実装されているビジュアル スタイル API
- テーマ サービス
- 1 つ以上のビジュアル スタイル定義ファイル (.msstyles)
ビジュアル スタイル API は、テーマと呼ばれるシステム サービスに依存しています。 共通コントロール ライブラリは、テーマ サービスに対してクエリを実行してスタイル関連の情報を取得します。Windows 7 までは、このサービスを使用して現在のビジュアル スタイルのコントロールをレンダリングします。
Windows 8 以降では、テーマ サービスがオフの場合でも、ビジュアル スタイル API が引き続き機能します。 つまり、テーマ サービスがオフの場合、ウィンドウの共通コントロールとクライアント以外の領域には、引き続きビジュアル スタイルが適用されます。 テーマ サービスを引き続き必要とする Windows 8 の機能は次のとおりです。
- 通常は PC 設定の [個人用設定] ページを使用して、ビジュアル スタイルを変更します。
- ユーザーの切り替え、ログオフ、シャットダウン、ユーザー セッション間での共有に関連するパフォーマンスの最適化。
ビジュアル スタイル API は、現在選択されているテーマに関連付けられている .msstyles ファイルからスタイル情報を取得します。 .msstyles ファイルには、ビジュアル スタイルを定義するメトリック、フォント、色、ビットマップのセットが含まれています
ビジュアル スタイルをサポートするためのアプリケーション要件
ビジュアル スタイルを使用するには、ComCtl32.dll バージョン 6 以降が含まれるオペレーティング システムでアプリケーションが実行されている必要があります。 アプリケーションで ComCtl32.dll バージョン 6 を使用する場合、アプリケーション マニフェストまたはコンパイラー ディレクティブを追加して、使用可能な場合はバージョン 6 を使用するよう指定する必要があります。 アプリケーションでビジュアル スタイルを使用可能にするアプリケーション マニフェストを作成する方法については、「ビジュアル スタイルの有効化」をご覧ください。
一般的なコントロールの場合、コントロールがユーザーの優先ビジュアル スタイルで表示されるようにするため、それ以上のアクションは必要ありません。
アプリケーションにカスタム コントロールまたはオーナー描画コントロールが含まれている場合、ビジュアル スタイル API を使用して、現在アクティブなビジュアル スタイルに関する情報を取得し、そのスタイルでコントロールを描画する必要があります。
Windows 8 より前のバージョンの Windows の場合、通常、カスタム コントロールとオーナー描画コントロールを描画するための 2 つの別個のコード パスをアプリケーションに用意する必要があります。 1 つのコード パスは、ビジュアル スタイルを使用するテーマがアクティブな場合にコントロールを描画し、もう 1 つのコード パスは、Windows クラシック テーマまたはハイ コントラスト テーマがアクティブな場合にコントロールを描画します。 ただし、Windows 8 では、ビジュアル スタイルが常にオンになっているため、別個のテーマ コード パスは必要ありません。 Windows 8 用にマニフェストされたアプリケーションは、ハイ コントラスト テーマを "無料で" 取得できます。詳しくは、「ハイ コントラスト テーマのサポート」をご覧ください。
詳しくは、「カスタム コントロールとオーナー描画コントロールでのビジュアル スタイルの使用」と「ビジュアル スタイル リファレンス」をご覧ください。
関連トピック