左図はビジュアルスタイルになっていません。右図はビジュアルスタイルになっています。
ここでは、ビジュアルスタイルにする方法を説明します。
方法1.プロジェクトにmanifestファイルを追加する。
方法2.ソースコードに直接コードを埋め込む。
左図はビジュアルスタイルになっていません。右図はビジュアルスタイルになっています。
ここでは、ビジュアルスタイルにする方法を説明します。
方法1.プロジェクトにmanifestファイルを追加する。
方法2.ソースコードに直接コードを埋め込む。
下記のmanifest.xmlファイルを用意し、ソースファイルと同じフォルダに入れます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>applcation</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
「CompanyName.ProductName.YourApp」と「applcation」は、任意の文字列に変更することができます。
「publicKeyToken="6595b64144ccf1df"」は、このmanifest.xmlファイルが、どのバージョンのDLLを読み込むか指定するものですので、間違えないようにしてください。
「ソリューション エクスプローラー」で、フォルダを選択した状態、もしくは、プロジェクト名が選択された状態で、
「プロジェクト(P)」 - 「プロパティ(P)...」(「ソリューション エクスプローラー」で、プロジェクト名が選択した状態の場合)
または、「プロジェクト(P)」 - 「[プロジェクト名]のプロパティ(P)...」(「ソリューション エクスプローラー」で、フォルダを選択した状態の場合)
を選択。
「ソリューション エクスプローラー」で、ファイルを選択した状態、もしくは、一番上の「ソリューション'[プロジェクト名]'(1プロジェクト)」が選択された状態では、 これ以降で解説する設定が表示できません。
左側のツリーから「構成プロパティ」-「マニフェスト ツール」-「入出力 (入力と出力)」を選択。
右側のリストビューの「追加のマニフェスト ファイル」に先ほど追加したmanifest.xmlを追加。
「OK」をクリック。
これでもビジュアルスタイルにならない場合は、
commctrl.hをインクルード
#include <commctrl.h>
comctl32.libを読み込む
#pragma comment(lib, "comctl32.lib")
WM_CREATEのところで、InitCommonControls()により、コモンコントロールの初期化
InitCommonControls();
を行っているか確認してください。
ただ、下記を追加するだけです。複数行にまたがるので、改行部分に\を入れています。
#pragma comment(linker,"/manifestdependency:\"type='win32' \
name='Microsoft.Windows.Common-Controls' \
version='6.0.0.0' \
processorArchitecture='x86' \
publicKeyToken='6595b64144ccf1df' \
language='*'\"")
★ビジュアルスタイルを解除するために、今回追加したコードを削除してからコンパイルすると、
mt.exe : general error c101008a: Failed to save the updated manifest to the file ".\Debug\***.exe.embed.manifest"〜
といったコンパイルエラーが発生します。
***.exe.embed.manifestを削除してから、コンパイルしてください。
総合インデックス > Visual C++ > インコのWindowsSDK 〜ビジュアルスタイルの表示にする