轉帖|其它|編輯:郝浩|2012-09-20 11:41:09.000|閱讀 397 次
概述:本文以MDI應用程序為例說明如何在已有的VC++工程中使用BCG界面庫,我的開發環境為VS2003。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文以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對象。
至此基本設置已經完成,此時你的程序應該可以正常地編譯運行。下面介紹如何為應用程序設置不同的風格。
11、在菜單欄上添加一個彈出菜單,在其中添加一個菜單項,上面的文字分別為"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。
12、為這五個菜單添加消息響應:
在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,在此省略。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園