左図はビジュアルスタイルになっていません。右図はビジュアルスタイルになっています。
ここでは、ビジュアルスタイルにする方法を説明します。
方法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 〜ビジュアルスタイルの表示にする