BCG Getting Started

开发环境

Win7(32)+VS2005+BCGP25

1.前提条件

1.要先在项目目录里设置BCG的包含目录和库目录,因为我们使用的是安装版的,在运行集成向导后自动填写了,此步可以省略。
2.打开VS2005新建一个sdi的MFC项目,项目名这里为BCGGettingStarted,,其他什么也不加不管

2.开始替换

1.在stdafx.h头文件中加入如下一行
#include "BCGCBProInc.h" 
2.在主头文件BCGGettingStarted.h中将CBCGGettingStartedApp的父类改为CBCGPWinApp
class CBCGGettingStartedApp : public CWinApp 
//换为
class CBCGGettingStartedApp : public CBCGPWinApp
3.BCGGettingStarted.cpp文件中的修改
3.1将CWinApp改为CBCGPWinApp
BEGIN_MESSAGE_MAP(CBCGGettingStartedApp, CBCGPWinApp)
    ON_COMMAND(ID_APP_ABOUT, &CBCGGettingStartedApp::OnAppAbout)
    // 基于文件的标准文档命令
    ON_COMMAND(ID_FILE_NEW, &CBCGPWinApp::OnFileNew)
    ON_COMMAND(ID_FILE_OPEN, &CBCGPWinApp::OnFileOpen)
    // 标准打印设置命令
    ON_COMMAND(ID_FILE_PRINT_SETUP, &CBCGPWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
3.2构造函数的改造——指定应用的一些BCG基础属性
  • Visual Theme (“皮肤”). 默认主题一般是windows的主题, 但是你可以选择任一预定义主题或者自定义 。举个例子,我想用VS2012的主题
SetVisualTheme(BCGP_VISUAL_THEME_VS_2012_DARK); 
  • 工具栏选项. 为了能够定制工具栏和菜单,在字符串资源中加入ID_VIEW_CUSTOMIZE ,并在构造器中加入如下代码
CBCGPToolbarOptions toolbarOptions;
toolbarOptions.m_nViewToolbarsMenuEntryID = ID_VIEW_TOOLBAR; // Will be replaced with toolbars menu
toolbarOptions.m_nCustomizeCommandID = ID_VIEW_CUSTOMIZE; // You don't need to add item to any toolbars/menus
toolbarOptions.m_strCustomizeCommandLabel = _T("Customize...");
SetToolbarOptions(toolbarOptions); 
3.3InitInstance()函数
    //如有CWinApp::InitInstance();改为如下
    CBCGPWinApp::InitInstance();

    //  初始化 OLE 库
    if (!AfxOleInit())
    {
        AfxMessageBox(IDP_OLE_INIT_FAILED);
        return FALSE;
    }

接下来,需要定义应用的数据存储在注册表中的位置,需要声明一个注册表项(如下代码添加在LoadStdProfileSettings后)

//这个字符串根据需要更改为你的公司或者项目名称都可以
SetRegistryKey(_T("Visual Studio 2005\\Projects\\BCGGettingStarted"));
LoadStdProfileSettings();
SetRegistryBase(_T("Settings")); 
4.Mainframe中的修改
4.1主框架继承类修改全局替换

MDI:在mainframe.h 和 mainframe.cpp文件中将CMDIFrameWnd 改为 CBCGPMDIFrameWnd
CMDIChildWnd 改为 CBCGPMDIChildWnd (MDI only).
SDI:CFrameWnd 改为 CBCGPFrameWnd

4.2主框架类成员工具条的替换

1.CToolbar to CBCGPToolBar,其他比如状态栏,如存在也替换
2.在 CMainFrame class中添加内嵌菜单工具栏对象 :

CBCGPMenuBar m_wndMenuBar;  // New menu bar
CBCGPToolBar m_wndToolBar;  // Application toolbar
4.3CMainFrame::OnCreate() 函数修改
// Create menu bar (replaces the standard menu):
if(!m_wndMenuBar.Create(this))
{
    TRACE0("Failed to create menubar\n");
    return-1;      // fail to create
}
m_wndMenuBar.SetBarStyle(m_wndMenuBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//使菜单栏能够停靠
m_wndMenuBar.EnableDocking (CBRS_ALIGN_ANY);
DockControlBar(&m_wndMenuBar);

注意

在同一应用程序中你可以添加任意多个工具栏对象,这么多对象的位图将合并为一个位图,然而只有一个菜单栏对象可以使用。

3.使用用户自定义工具按钮

3.1.添加一个新的菜单条目: ID_TOOLS_ENTRY. 它将会自动替换现有列表

3.2.在字符串资源中添加下列项

ID_TOOL1 "Activates user-defined tool\nUser Tool"
ID_TOOL2 "Activates user-defined tool\nUser Tool"
...
ID_TOOLx "Activates user-defined tool\nUser Tool"

3.3.在应用的 InitInstance()中添加下面一句

EnableUserTools(ID_TOOLS_ENTRY, ID_TOOL1, ID_TOOLx);
更多详细信息请参考下回分解——BCG库结构

猜你喜欢

转载自blog.csdn.net/kouqi627/article/details/78124009
今日推荐