效果如下:
直接上源码:
1、修改程序入口:
BOOL CToolBarSampleApp::InitInstance()
{
InitCommonControls(); CBCGPWinApp::InitInstance();
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
} AfxEnableControlContainer();
CBCGControlsPropSheet propSheet;
m_pMainWnd = &propSheet;
propSheet.DoModal(); return FALSE;
}2、创建类BCGControlsPropSheet 用于加载各个页面:
(1)BCGControlsPropSheet.h
#pragma once
#include "Page1.h"
class CBCGControlsPropSheet : public CBCGPPropertySheet
{
DECLARE_DYNAMIC(CBCGControlsPropSheet)public:
CBCGControlsPropSheet(CWnd* pParentWnd = NULL);
public:
CPage1 m_Page1;
HICON m_hIcon;
public:
public:
virtual BOOL OnInitDialog();
public:
virtual ~CBCGControlsPropSheet();
protected:
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
(2)BCGControlsPropSheet.cpp
#include "stdafx.h"
#include "BCGControlsPropSheet.h"
#include "Resource.h"IMPLEMENT_DYNAMIC(CBCGControlsPropSheet, CBCGPPropertySheet)
CBCGControlsPropSheet::CBCGControlsPropSheet(CWnd* pParentWnd)
:CBCGPPropertySheet (IDS_CAPTION, pParentWnd)
{
SetLook(CBCGPPropertySheet::PropSheetLook_Tabs, globalUtils.ScaleByDPI(100));//这里修改第一个参数用来显示不同的效果
SetIconsList (IDB_ICONS32, 32, RGB(255, 0, 255), TRUE);
AddPage(&m_Page1); EnableVisualManagerStyle(TRUE, TRUE);
EnableDragClientArea();
}CBCGControlsPropSheet::~CBCGControlsPropSheet()
{
} BEGIN_MESSAGE_MAP(CBCGControlsPropSheet, CBCGPPropertySheet)
ON_WM_QUERYDRAGICON()
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()BOOL CBCGControlsPropSheet::OnInitDialog()
{
BOOL bResult = CBCGPPropertySheet::OnInitDialog(); return bResult;
}HCURSOR CBCGControlsPropSheet::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}void CBCGControlsPropSheet::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
BCGPShowAboutDlg (AFX_IDS_APP_TITLE);
}
else
{
CBCGPPropertySheet::OnSysCommand(nID, lParam);
}
}
3、创建各个page页面(1)Page1.h
#pragma once
#include "Resource.h"class CPage1 : public CBCGPPropertyPage
{
DECLARE_DYNCREATE(CPage1)public:
CPage1();
~CPage1();
enum { IDD = IDD_TOOLBARSAMPLE_DIALOG };
public: protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV supportprotected:
virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP()
CMenu m_menu;
BOOL m_bItem4Checked;
};
(2)Page1.cpp
#include "stdafx.h"
#include "Page1.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endifIMPLEMENT_DYNCREATE(CPage1, CBCGPPropertyPage)
CPage1::CPage1() : CBCGPPropertyPage(CPage1::IDD)
{
}CPage1::~CPage1()
{
}void CPage1::DoDataExchange(CDataExchange* pDX)
{
CBCGPPropertyPage::DoDataExchange(pDX);
} BEGIN_MESSAGE_MAP(CPage1, CBCGPPropertyPage)
END_MESSAGE_MAP()BOOL CPage1::OnInitDialog()
{
CBCGPPropertyPage::OnInitDialog(); return TRUE;
}