BCG界面库使用指南
本文以MDI应用程序为例说明如何在已有的VC++工程中使用BCG界面库,我的开发环境为VS2003。
1,将BCG/BCGCBPro目录路径添加到“项目属性->C/C++ ->常规 ->附加包含目录”中,同时将BCG/Bin目录路径添加到“项目属性->链接器 ->常规 ->附加库目录”中。
2,确保在CWinApp派生类(设为CMyApp)的InitInstance()成员函数中调用AfxOleInit();
3,在ExitInstance()函数中添加:
CleanState();
BCGCBProCleanUp();
4,在stdafx.h中添加
#include "bcg/BCGCBProInc.h"
5,为CMyApp添加基类,如下:
class CMyApp:public CWinApp,public CBCGPWorkspace
6,设置个性化的数据在注册表中的存放位置和需要个性化的特性。在CMyApp::InitInstance()函数中添加:
SetRegistryBase(_T("Settings"));
InitMouseManager();
InitContextMenuManager();
InitKeyboardManager();
7,将CMDIFrameWnd 修改为 CBCGPMDIFrameWnd,注意MainFrm.h和MainFrm.cpp中的所有CMDIFrameWnd都要改。
8,将CMDIChildWnd改成CBCGPMDIChildWnd,.h和.cpp中的都要改。
9,将CToolBar m_wndToolBar修改成CBCGPToolBar m_wndToolBar,并在你的CMainFrame类中添加一个CBCGPMenuBar类型的成员m_wndMenuBar,如下示:
CBCGPMenuBar m_wndMenuBar; // New menu bar
CBCGPToolBar m_wndToolBar; // Application toolbar
10,为使菜单条生效并且可停靠,在CMainFrame::OnCreate()函数中添加以下内容:
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);
说明:你可以在你的应用程序中使用多个CBCGPToolBar,它们对应的位图将会自动地合并在一张位图上,然而,你只可以使用一个CBCGPMenuBar对象。
至此基本设置已经完成,此时你的程序应该可以正常地编译运行。下面介绍如何为应用程序设置不同的风格。
1,在菜单栏上添加一个弹出菜单,在其中添加一个菜单项,上面的文字分别为"Office 2003","Office 2007(blue)","Office 2007(black)","Office 2007(silver)","Office 2007(aqua)",对应的菜单项ID分别为ID_VIEW_APPLOOK_2003,ID_VIEW_APPLOOK_2007_1,,ID_VIEW_APPLOOK_2007_2,ID_VIEW_APPLOOK_2007_3,ID_VIEW_APPLOOK_2007_4。
2,为这五个菜单添加消息响应:
在MainFrm.cpp文件中,添加消息映射(在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间):
ON_COMMAND_RANGE(ID_VIEW_APPLOOK_2003, ID_VIEW_APPLOOK_2007_4, OnAppLook)
在CMainFrame类中添加OnAppLook函数声明:
afx_msg void OnAppLook(UINT id);
添加其方法实现:
void CMainFrame::OnAppLook(UINT id){
CWaitCursor wait;
CBCGPVisualManager2007::SetCustomColor ((COLORREF)-1);
switch (id){
case ID_VIEW_APPLOOK_2003:CBCGPVisualManager::SetDefaultManager(
RUNTIME_CLASS (CBCGPVisualManager2003));
break;
case ID_VIEW_APPLOOK_2007_1:
CBCGPVisualManager2007::SetStyle (CBCGPVisualManager2007::VS2007_Aqua);
CBCGPVisualManager::SetDefaultManager (
RUNTIME_CLASS (CBCGPVisualManager2007));
break;
...
}
RedrawWindow (NULL, NULL, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);
}
Office 2007其它的风格样式切换类似ID_VIEW_APPLOOK_2007_1,在此省略。
3,运行时请确保程序能够找到Bin目录下的相关DLL,否则切换风格时会失败。
-
- 微信头像会不会影响第一印象
-
2024-09-22
-
- 明成祖是谁
-
2024-09-22
-
- 齐桓公见小臣稷文言文翻译及注释,齐桓公见小臣稷文言文翻译及原文
-
2024-09-22
-
- 抖音里带你去爬山什么意思
-
2024-09-22
-
- 埋头苦干的人有哪些名人近代,埋头苦干的人有哪些名人
-
2024-09-22
-
- h5页面和web页面怎么做方法
-
2024-09-22
-
- 世界第一高峰是什么峰(珠穆朗玛峰在哪个国家)
-
2024-09-09
-
- 秦始皇嬴政为什么人气这么高
-
2024-09-09
-
- 《骆驼祥子》名著导读 读书笔记感悟
-
2024-09-09
-
- 春联大全 (600句)
-
2024-09-09
-
- 世界七大顶尖光学发达国家中,谁名列前茅?
-
2024-09-09
-
- 中国还拥有26个主导世界的技第一
-
2024-09-09
-
- 清雅仙气的古风网名
-
2024-09-05
-
- 女生网名温柔仙气二字(精选543个)
-
2024-09-05
-
- 女人最迷人的昵称(精选1200个)
-
2024-09-05
-
- 情侣id小众高级—高级情侣cp昵称
-
2024-08-30
-
- 王者id小众高级二字(精选1050个)
-
2024-08-30
-
- 海鲜店的名字怎么取(海鲜店取名字大全)
-
2024-08-22
-
- 独特大气的店铺起名(小商店取什么名字好听)
-
2024-08-22
-
- 淘宝网店取名字大全(淘宝店铺名字设计)
-
2024-08-22