如何构建BCG框架,BCG属性页,MFC框架属性页

来源:互联网 发布:openstack ubuntu镜像 编辑:程序博客网 时间:2024/06/05 15:06

1.首先新建BCGDialog项目
这里写图片描述

这里写图片描述

2.这里需要添加一个继承CBCGPPropertySheet的类,在类视图右键SJB_BCGApp,添加,类。
这里写图片描述

这里写图片描述

3.程序入口为Dialog对象,将他换成新建的类对象。

BOOL CSJB_BCGAppApp::InitInstance(){    InitCommonControls();    CBCGPWinApp::InitInstance();    AfxEnableControlContainer();    //CSJB_BCGAppDlg dlg;//原来代码    CSJBMainSheet dlg;//新添加代码    m_pMainWnd = &dlg;    INT_PTR nResponse = dlg.DoModal();

并在SJB_BCGApp.cpp中添加头文件

#include "stdafx.h"#include "SJB_BCGApp.h"#include "SJB_BCGAppDlg.h"#include "SJBMainSheet.h"//新添加

可以删除原来继承Dialog的了文件SJB_BCGAppDlg.h
SJB_BCGAPPDlg.cpp,当然也可以留着不删除
这里写图片描述

4.添加属性页面
这里写图片描述

这里写图片描述

ID分别修改为IDD_SJBPage1,IDD_SJBPage2,然后然后分别属性页右键添加类CSJBPage1和CSJBPage2

这里写图片描述

由于CSJBPage1和CSPage2都继承于CBCGPPropertyPage这个类,所以要将SJBPage1.h,SJBPage1.cpp,SJBPage2.h,SJBPage2.cpp,中的CPropertyPage修改为CBCGPPropertyPage,并添加头文件

SJBPage1.h修改如下

#include "resource.h"//新添加// CSJBPage1 对话框class CSJBPage1 : public CBCGPPropertyPage{//CPropertyPage修改成CBCGPPropertyPage    DECLARE_DYNAMIC(CSJBPage1)public:    CSJBPage1();    virtual ~CSJBPage1();// 对话框数据    enum { IDD = IDD_SJBPage1 };protected:    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持    DECLARE_MESSAGE_MAP()};

SJBPage1.cpp修改如下

IMPLEMENT_DYNAMIC(CSJBPage1, CBCGPPropertyPage)//四处CPropertyPage修改成CBCGPPropertyPageCSJBPage1::CSJBPage1()    : CBCGPPropertyPage(CSJBPage1::IDD){}CSJBPage1::~CSJBPage1(){}void CSJBPage1::DoDataExchange(CDataExchange* pDX){    CBCGPPropertyPage::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CSJBPage1, CBCGPPropertyPage)END_MESSAGE_MAP()

SJBPage2.h,SJBPage2.cpp修改同上

SJBMainSheet.h文件修改

#pragma once#include "bcgppropertysheet.h"#include "SJBPage1.h"//新添加#include "SJBPage2.h"//新添加class CSJBMainSheet :    public CBCGPPropertySheet{public:    /*CSJBMainSheet(void);    ~CSJBMainSheet(void);*///将原来构造函数注释    CSJBMainSheet(CWnd* pParentWnd = NULL);//新添加    CSJBPage1 m_Page1;//新添加    CSJBPage2 m_Page2;//新添加};

SJBMainSheet.cpp文件修改

#include "StdAfx.h"#include "SJBMainSheet.h"#include "SJB_BCGApp.h"//CSJBMainSheet::CSJBMainSheet(void)//{//}//CSJBMainSheet::~CSJBMainSheet(void)//{//}CSJBMainSheet::CSJBMainSheet( CWnd* pParentWnd /*= NULL*/ ):CBCGPPropertySheet (IDS_CAPTION, pParentWnd)//new Add{// IDS_CAPTION 是窗口标题,是预先添加的资源类//型在String Table里面添加    //这是改变BCG的皮肤,两者必须要同时使用,而且需要预先添加资源图片,这里是IDB_BITMAP    SetLook (CBCGPPropertySheet::PropSheetLook_OutlookBar);//新添加    SetIconsList ( IDB_BITMAP, 32);//新添加    AddPage(&m_Page1);//新添加    AddPage(&m_Page2);//新添加}

IDS_CAPTION在String Table添加

这里写图片描述

SetIconsList ( IDB_BITMAP, 32);//预先添加的资源图片,将资源图片如下添加

这里写图片描述

右键IDB_BITMAP添加资源,然后保存

这里写图片描述

5.程序执行
这里写图片描述

SetIconsList ( IDB_ICONS32, 32);注释此行代码运行如下

这里写图片描述

MFC框架属性页的建立同BCG一样,只是类的修改

学习于谯博士,感谢谯博士的大力支持

3 0
原创粉丝点击