CMFCVisualManagerをダイアログベースのアプリケーションで使用して、アプリケーションの外観を変更できますか?もしそうなら、それはどのように行われますか?ダイアログベースのアプリケーションでCMFCVisualManagerを使用できますか?
アイデアは、あなたがしている場合はありません、少なくともではない、実行することはできませんMSVC 2008
CMFCVisualManagerをダイアログベースのアプリケーションで使用して、アプリケーションの外観を変更できますか?もしそうなら、それはどのように行われますか?ダイアログベースのアプリケーションでCMFCVisualManagerを使用できますか?
アイデアは、あなたがしている場合はありません、少なくともではない、実行することはできませんMSVC 2008
でリリースMFCの機能パックを使用して、プッシュボタンなどのコントロールの形、色などを変更することですFeature Packのバージョンについて説明します。 BCGSoftライブラリのバージョン10にはこの機能があります(例:http://www.bcgsoft.com/bcgcontrolbarpro-versions.htmおよびhttp://www.bcgsoft.com/images/SkinnedBuiltInDlgs.jpg)。 MFCフィーチャーパックは、以前のバージョンのBCGSoftライブラリであり、MSはそれらからライセンスを購入しました。
プロジェクトリソースに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>
私はあなたがお使いのベースCDialog
(this 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);
これは、視覚スタイルを有効にするには、コードの最低額です。 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;
これにより、Common Controls V6(別名Windows XPの外観)のみが有効になります。 OPが後になったのは、「テーマ別」の外観(Office 2007スタイル、VS2005、またはMFC Nextに含まれるその他のもの)でした。 – Roel