原創|其它|編輯:郝浩|2012-11-05 17:20:34.000|閱讀 1663 次
概述:本文介紹如何使用Xtreme Toolkit Pro繪制Office風格工具欄和菜單,附源碼。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
如何使用Xtreme Toolkit Pro繪制Office風格工具欄和菜單,具體的步驟如下:
1、從Visual Studio 中選擇 File | New ,選擇 Projects 標簽.
2、選擇MFC Appwizard(exe) 作為項目類別 ,輸入 ‘MDISample’ 作為項目名,Visual Studio 新建對話框。
3、第一步, 確保選擇了 Multiple documents ,然后點擊完成就可以了。
添加 Xtreme 命令工具欄組件:
1、添加下面一行代碼到 StdAfx.h 文件:
Xtreme Toolkit Pro: #include <XTToolkitPro.h> // Xtreme Toolkit Pro component library
2、在 MainFrm.h 文件,對于MDI應用程序改變基類為 CXTPMDIFrameWnd ,對于SDI應用程序改基類為 CXTPFrameWnd :(注:就是在CMDIFrameWnd前加XTP(XtrmemToolkitPro))
class CMainFrame : public CXTPMDIFrameWnd { ... };
3、如果打算覆蓋( override) PreTranslateMessage
或OnWndMsg
,確定你調用CXTPFrameWnd
或CXTPMDIFrameWnd
基類, 比如:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CXTPMDIFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; } //虛函數
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { // TODO: Add your specialized code here and/or call the base class return CXTPMDIFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); }
4、把下面的代碼添加到 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函數:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } //刪除下面3行代碼 // TODO: Delete these three lines if you don't want the toolbar to be dockable停靠 // m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); // EnableDocking(CBRS_ALIGN_ANY); // DockControlBar(&m_wndToolBar); //添加自己的代碼 // 初始命令工具欄 if (!InitCommandBars()) return -1; // 得到命令工具欄對象指針. CXTPCommandBars* pCommandBars = GetCommandBars(); if(pCommandBars == NULL) { TRACE0("Failed to create command bars object.\n"); return -1; // fail to create } // 添加菜單欄 CXTPCommandBar* pMenuBar = pCommandBars->SetMenu( _T("Menu Bar"), IDR_MDISAMTYPE); if(pMenuBar == NULL) { TRACE0("Failed to create menu bar.\n"); return -1; // fail to create } // 制作工具欄 CXTPToolBar* pToolBar = (CXTPToolBar*) pCommandBars->Add(_T("Standard"), xtpBarTop); if (!pToolBar || !pToolBar->LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; } // 設置Office 2003 主題 CXTPPaintManager::SetTheme(xtpThemeOffice2003); return 0; }
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件