最近、C++ MFCアプリケーションをVS2005からVS2008に切り替えました。残念なことに、私たちのUIには外見上の問題があります。グループボックスは黒ではなく青色で表示され、プロパティダイアログは白い背景などです。私はVS2008ではMFCがOSテーマを尊重するように変更されていると推測しますテーマ)。残念なことに、すべてのコントロールとカスタムツールバーを変更して、アプリをまともに見せるようにするには、多くの作業が必要になります。VS2008でXPテーマをコンパイルMFCアプリケーション
VS2005モードでアプリケーションを戻すコードがあるかどうかは知っていますか?私は、XPのテーマをピックアップしている停止しない次のコード
typedef void (WINAPI *tSetThemeAppProperties)( DWORD);
tSetThemeAppProperties pSetThemeAppProperties=0;
HINSTANCE handle = ::LoadLibrary("UxTheme.dll");
if (handle)
pSetThemeAppProperties = (tSetThemeAppProperties) ::GetProcAddress(handle,"SetThemeAppProperties");
if (pSetThemeAppProperties)
{
// call function
pSetThemeAppProperties(0/*dwFlags*/);
}
::FreeLibrary(handle);
を見つけましたが、すべてのテーマをオフにして、それがVS2005でやったよりも多くの日付探してアプリケーションを残します。
おかげ
こんにちは、私はマニフェストファイルをチェックし、commctl32 v6のリファレンスがありましたが、これは私たちの2005年のマニフェストではありませんでした。私はこれを削除しても差はありませんでした。私はcomctl32.dllのv5.82を参照しようとしましたが、私のアプリケーションは起動しません。 example manifest(version/publickeytoken info)がありますか? –
残念ながら、私はしません。私は通常C++を使用しません。私は、Javaから何かをクライアントの要求に応じてコンパイルされた実行可能ファイルに変換した後でマニフェストファイルを処理しただけです。コンパイルされたバージョンは、新しいものを持っていたはずの古いcomctl32.dllで終了しました。 – Powerlord
'stdafx.h'ファイルをチェックしてください。マニフェスト参照は、そこにもあります。マニフェストのバージョンを変更することはできますが、変更する必要があると思われる 'publicKeyToken'があります。 – djeidot