Xtreme Toolkit Pro绘制Office风格工具栏和菜单

原创|其它|编辑:龚雪|2012-11-05 17:20:34.000|阅读 1016 次

概述:本文介绍如何使用Xtreme Toolkit Pro绘制Office风格工具栏和菜单,附源码。

如何使用Xtreme Toolkit Pro绘制Office风格工具栏和菜单,具体的步骤如下:

1、从Visual Studio 中选择  File | New ,选择 Projects 标签.

2、选择MFC Appwizard(exe) 作为项目类别 ,输入  ‘MDISample’ 作为项目名,Visual Studio 新建对话框。

Xtreme Toolkit Pro绘制Office风格工具栏和菜单

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)  PreTranslateMessageOnWndMsg ,确定你调用CXTPFrameWndCXTPMDIFrameWnd 基类, 比如:

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;
}

 



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:慧都控件

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Xtreme Toolkit Pro

专为Windows平台开发人员提供最全面的Visual C++界面开发组件

在线客服 在线QQ 电话咨询
400-700-1020
在线客服系统
live chat