2008-09-16 9 views

答えて

2

でリリースMFCの機能パックを使用して、プッシュボタンなどのコントロールの形、色などを変更することですFeature Packのバージョンについて説明します。 BCGSoftライブラリのバージョン10にはこの機能があります(例:http://www.bcgsoft.com/bcgcontrolbarpro-versions.htmおよびhttp://www.bcgsoft.com/images/SkinnedBuiltInDlgs.jpg)。 MFCフィーチャーパックは、以前のバージョンのBCGSoftライブラリであり、MSはそれらからライセンスを購入しました。

0

プロジェクトリソースにCommon Controlsマニフェストを追加する必要があります。

<?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="Program Name" 
type="win32" 
/> 
<description>Description of Program</description> 
<dependency> 
<dependentAssembly> 
<assemblyIdentity 
    type="win32" 
    name="Microsoft.Windows.Common-Controls" 
    version="6.0.0.0" 
    processorArchitecture="X86" 
    publicKeyToken="6595b64144ccf1df" 
    language="*" 
/> 
</dependentAssembly> 
</dependency> 
</assembly> 
+0

これにより、Common Controls V6(別名Windows XPの外観)のみが有効になります。 OPが後になったのは、「テーマ別」の外観(Office 2007スタイル、VS2005、またはMFC Nextに含まれるその他のもの)でした。 – Roel

0

私はあなたがお使いのベースCDialogthis page上の手順4をご確認ください)にOnApplicationLookを実装することによって、いくつかのMFC-機能パックの機能を持つことができると思います。ここでは、マニフェストファイルのコードです。全体OnApplicationLookメソッドを実装した方がよいかもしれませんが、あなたは、単にOnInitDialogにこれを追加することで、アプリケーションをテストすることができます。

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); 
0

これは、視覚スタイルを有効にするには、コードの最低額です。 CDialogをフレームに簡単にポップすることができます。 IDR_MAINFRAMEはメニューリソースです。

class CMFCApplication2Dlg : public CFrameWndEx 
{ 
    CMFCMenuBar bar; 
public: 
    CMFCApplication2Dlg() : CFrameWndEx() 
    { 
     LoadFrame(IDR_MAINFRAME); 
     bar.Create(this); 
    } 
}; 

class CMFCApplication2App : public CWinAppEx 
{ 
public: 
    virtual BOOL InitInstance() 
    { 
     CWinAppEx::InitInstance(); 

     CMFCVisualManagerOffice2007::SetStyle(
      CMFCVisualManagerOffice2007::Office2007_ObsidianBlack); 

     CMFCVisualManager::SetDefaultManager(
      RUNTIME_CLASS(CMFCVisualManagerOffice2007)); 

     SetRegistryKey(_T("Local AppWizard-Generated Applications")); 

     m_pMainWnd = new CMFCApplication2Dlg(); 

     m_pMainWnd->ShowWindow(SW_SHOW); 
     m_pMainWnd->UpdateWindow(); 

     return TRUE; 
    } 
}; 

CMFCApplication2App theApp; 
関連する問題