天天看点

BCGControlBar:为现有MFC对话框工程换肤

系统环境:Windows 10 (10586.17)

软件环境:Visual Studio 2010

本次目的:为已有的MFC对话框程序(实例工程:BCGTest)换肤

------------------------------------------------------------- 华丽的分割线 -------------------------------------------------------------

第一步、   在stdafx.h文档中包含头文件 <BCGCBProInc.h>

// stdafx.h
......
#include <BCGCBProInc.h>
           

第二步、   将对话框类的父类改为CBCGPDialog,也可以采取简便的方法:

// BCGTestDlg.h
#pragma once

// 可以在这里添加一个宏
#define CDialogEx CBCGPDialog

class CBCGTestDlg : public CDialogEx
{ ...... }
           

第三步、   为CBCGTestApp再添加一个父类CBCGPWorkspace

// BCGTest.h
#pragma once
......

class CBCGTestApp : public CWinApp, public CBCGPWorkspace
{ ...... }
           

第四步、   打开BCGTestDlg.cpp,添加如下代码:

// BCGTestDlg.cpp
......
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
	EnableVisualManagerStyle();
}

BOOL CBCGTestDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	......
	CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_LunaBlue);
	// 使Office 2007皮肤可用
	CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
	// 使Office 2007风格有效
	EnableVisualManagerStyle();

	return TRUE;
}
           

第五步、   在CBCGTestApp::InitInstance()结束前,添加BCGCBProCleanUp()

// BCGTestDlg.h

BOOL CBCGTestApp::InitInstance()
{ 
	......
	BCGCBProCleanUp();
	return FALSE;
 }
           

测试效果: