- 締切済み
ダイアログスタイルが古い
VC6.0で作成したダイアログベースのアプリケーションを、VisualStudiio2008のプロジェクトに変換したのですが、ダイアログのスタイルが古いWindowsスタイルのままになってしまいます。 リソースエディタでは新しいスタイルで表示されます。 実行すると古いスタイルで表示されます。 原因をご存じの方、ご教授ください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- FAY
- ベストアンサー率49% (95/193)
OSが32bitとかってに仮定して・・・ 下の内容をコピーしてメモ帳に貼り付けて、XXX.manifest という名前で保存します。 (XXXは好みに合わせて変更してください) ここから <?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="Microsoft.Windows" type="win32" /> <description>TimeSeries</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly> ここまで 次にVS2008でソリューション(プロジェクト)を開き、プロジェクトのプロパティを表示します。 構成プロパティ > マニフェストツール > 入力と出力 の [追加のマニフェスト ファイル] のところに先ほど作成したXXX.manifestを指定してリビルドします。 で、どうでしょう。 64bit OSの場合は上記内容のX86をX64なりIA64なりに変えてあげてください。
- sygh
- ベストアンサー率76% (42/55)
Windows XP 以降で追加された、コモン コントロール Ver.6.x を使うように、アプリケーション マニフェストで明示的に指示する必要があります。 [1] stdafx.h に下記のプリプロセッサ ディレクティブを記述。 [2] メニュー「プロジェクト」→「{プロジェクト名}のプロパティ」→「構成プロパティ」→「全般」→「文字セット」で「Unicode 文字セットを使用する」を選択。 [3] リビルド。 VS 2008 の MFC App ウィザードを使うと、下記のディレクティブは自動的に記述されます。 「マルチバイト文字セットを使用する」の設定でビジュアル スタイルにすることもできなくはないですが(_UNICODE 定義の有無にかかわらずディレクティブを有効にする、あるいはマニフェスト ファイルをリソースとして埋め込む)、Windows XP 以降は内部処理が Unicode(UTF-16)になっている関係上、マルチバイト文字セット設定でビジュアル スタイルを適用すると一部の機能が使えなかったり、不具合が出たりすることがあります。 #ifdef _UNICODE #if defined _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_IA64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") #elif defined _M_X64 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") #else #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") #endif #endif
- Kensyusei
- ベストアンサー率30% (25/81)
デバッグビルドとリリースビルドの構成が違う くらいしか思いつきませんねー