step 1:
#include <XTToolkitPro.h>
step 2:
change your base class to be CXTPMDIFrameWnd for MDI applications or CXTPFrameWnd for SDI applications:
class CMainFrame : public CXTPFrameWnd
{
...
};
step 3:
If you plan to override either PreTranslateMessage or OnWndMsg make sure that you call the CXTPFrameWnd or CXTPMDIFrameWnd base class, for example:
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
return CXTPFrameWnd::PreTranslateMessage(pMsg);
}
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode,void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
return CXTPFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
step 4:
Add the following code to the int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) function:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CXTPFrameWnd::OnCreate(lpCreateStruct) == -1)
{
return -1;
}
if (!m_wndStatusBar.Create(this) ||!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeo(UINT)))
{
TRACE0("Failed to create status bar/n");
return -1;
}
if (!InitCommandBars())
{
return -1;
}
CXTPCommandBars* pCommandBars = GetCommandBars();
if(pCommandBars == NULL)
{
TRACE0("Failed to create command bars object./n");
return -1;
}
CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
if(pMenuBar == NULL)
{
TRACE0("Failed to create menu bar./n");
return -1;
}
CXTPToolBar* pToolBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"),xtpBarTop);
if (!pToolBar || !pToolBar->LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar/n");
return -1;
}
// Set Office 2003 Theme
CXTPPaintManager::SetTheme(xtpThemeOffice2003);
return 0;
}
本文介绍了如何在MDI或多文档界面应用中集成XTP工具栏,包括设置基类、覆盖消息处理函数、创建状态栏及命令栏等步骤,并详细展示了初始化命令栏的具体实现。

2100

被折叠的 条评论
为什么被折叠?



