0

vS2008 で作成された MFC ウィザード ベースのアプリケーション (CPropertySheet、CPropertyPage) があります。ほぼ完成したアプリをよりモダンな外観にしようとしています。私は CDHTMLDIAlog を調べましたが、多くの作業が行われており、十分に文書化されていないようです。次に、Feature Pack のいくつかの機能を使用できると考えました。このリンク テキストに関するスレッドを見つけましたが、スレッドに記載されているコードをアプリのさまざまな場所に追加しましたが、外観は変わりません。

CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver); CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007)); CDockingManager::SetDockingMode(DT_SMART); RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);

また、CPropertySheet を CMFCPropertySheet に、CPropertyPage を CMFCPropertyPage に置き換えました。

ありがとう...

4

2 に答える 2

2

「アプリをよりモダンな外観にする」を定義します。ここでは、XP スタイルの共通コントロールについて話しているのではなく、別のウィザード レイアウトについて話していると思います。ウィザードの上部または左側にヘッダー/バナー グラフィックが必要ですか? m_psh.dwFlags のプロパティ シートの構成パラメータを見てください: PSH_WIZARD97, PSH_WATERMARK, PSH_HEADER, ...

ウィザード (Feature Pack スタイル) に最新の Office スタイルの「スキン」を使用することについて話している場合は、運が悪いです。Feature Pack を使用したダイアログでは、これを行うことはできません。BCG Controls を調べてください。費用はかかりますが、より最新であり、追加の機能を利用できます。

それがあなたが望むものとまったく異なるものである場合は、それがどのように見えるべきかのモックアップ、および/または現在の外観とそれについて気に入らない点のスクリーンショットを投稿してください.

于 2009-10-23T14:20:54.423 に答える
0

あなたが持っている必要があります:

  • CWinAppCWinAppExメインプログラムファイルでに置き換えられました。
  • 実装されたWindowsCommonControls 6.0マニフェスト(RT_MANIFESTリソースまたは#pragmastdafx.hのエントリ)
  • メソッドの最初にある以下のコードInitInstance()(このコードは、新規プロジェクトウィザードで追加されているはずです):

    // InitCommonControlsEx() is required on Windows XP if an application
    // manifest specifies use of ComCtl32.dll version 6 or later to enable
    // visual styles.  Otherwise, any window creation will fail.
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
    // Set this to include all the common control classes you want to use
    // in your application.
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);
    
于 2009-10-19T13:31:18.453 に答える