应用程序迁移至Xtreme Toolkit pro.docx

上传人:b****5 文档编号:4953788 上传时间:2022-12-12 格式:DOCX 页数:7 大小:17.03KB
下载 相关 举报
应用程序迁移至Xtreme Toolkit pro.docx_第1页
第1页 / 共7页
应用程序迁移至Xtreme Toolkit pro.docx_第2页
第2页 / 共7页
应用程序迁移至Xtreme Toolkit pro.docx_第3页
第3页 / 共7页
应用程序迁移至Xtreme Toolkit pro.docx_第4页
第4页 / 共7页
应用程序迁移至Xtreme Toolkit pro.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

应用程序迁移至Xtreme Toolkit pro.docx

《应用程序迁移至Xtreme Toolkit pro.docx》由会员分享,可在线阅读,更多相关《应用程序迁移至Xtreme Toolkit pro.docx(7页珍藏版)》请在冰豆网上搜索。

应用程序迁移至Xtreme Toolkit pro.docx

应用程序迁移至XtremeToolkitpro

应用程序迁移至XtremeToolkitpro

应用程序迁移至XtremeToolkitpro

2009-01-1915:

49:

43

 

专业版中的很多组件,比如toolbars,menubars和dockingwindows等与标准版有很大的

不同。

这是因为新的架构作了相当大的改变,提供了很多新的增强的特色。

本迁移向导试图揭示这些异同以提供帮助,使你在迁移标准版的程序到专业版上时

更容易一些。

以下是这篇文章的所涉及的主题:

准备你的程序

开始

commandbar的初始化

menubar的创建

toolbar的创建

dockwindow的创建

添加对toolbar和menu的定制

添加智能菜单

为应用程序添加一个theme准备你的应用程序首先你要做的是改变你的StdAfx.h文件中的include文件。

这个文件常用来引进

所有的toolkit的类定义并把你的程序连接到toolkit。

你需要打开你的StdAfx.h文件,

把#include<XTToolKit.h>改为#include<XTPToolkit.h>,例如:

#include<XTToolkitPro.h>//XtremeToolkitProcomponents重新命名你的基类

下来你需要改变一些基类。

你得把所有出现的CXT…改为C…,比如在一个MDI程序中,

CXTMDIChildWnd要变成CMDIChildWnd,CXTMDIFrameWnd要变成CMDIFrameWnd。

对一个SDI程序,CXTFrameWnd要变成CFrameWnd。

下面是一个所有需要改变为起初的

MFC命名惯例的类的列表。

这是你的程序返

回到迁移时的一个好的起点。

ToolkitClassNameMFCClassName(renameto)

CXTFrameWndCFrameWnd

CXTMDIChildWndCMDIChildWnd

CXTMDIFrameWndCMDIFrameWnd

CXTOleIPFrameWndCOleIPFrameWnd

CXTControlBarCControlBar

CXTDialogBarCDialogBar

CXTReBarCReBar

CXTReBarCtrlCReBarCtrl其他缺失的类以下的类在XtremeToolkit的专业版中不再出现。

在新的体系中,他们或是被代替或

是被废弃。

这些类中的大多数你不能再直接使用;但在这里把它们列出来作为你的参

考:

ToolkitClassName

CXTAccelSwapOutItemListCXTCustOptionsCXTPopupTearOffWnd

CXTAccelManagerCXTCustomizeSheetCXTPopupColorTearOff

CXTCBarDialogCXTDockBarCXTPopupToolbarTearOff

CXTCommandsListBoxCXTDockColorSelectorCXTPreviewView

CXTItemDataCXTDockContextCXTSplitterDock

CXTCoolMenuCXTDockWindowCXTSplitterRowDock

CXTMenuCXTFrameImplCXTToolBar

CXTCustomToolBarCXTStringCXTToolBarCtrl

CXTCustToolBarPageCXTMenuBarItemCXTPopupWndToolbar

CXTCustCommandsPageCXTMenuBarCXTToolBarPopupWndHook

CXTCustAcceleratorsCXTMiniDockFrameWndCXTToolBarPopupWnd

CXTCustToolsCXTNewToolbarDlgCXTToolsManager开始改变你的主框架的继承关系

现在你的程序已经不再涉及标准版本的东西了,我们可以开始迁移了。

现在你已经

更新了你的StdAfx.h文件,在你的MainFrm.h文件中改变你的基类为CXTPMDIFrameWnd

(对MDI程序)和CXTPFrameWnd(对SDI程序):

classCMainFrame:

publicCXTPMDIFrameWnd

{

...

};

如果你重载了PreTranslateMessage请确保你调用了CXTPMDIFrameWnd基类,例如:

BOOLCMainFrame:

:

PreTranslateMessage(MSG*pMsg)

{

//TODO:

Addyourspecializedcodehereand/orcallthebaseclassreturnCXTPMDIFrameWnd:

:

PreTranslateMessage(pMsg);

}

另外,如果你重载了OnCmdMsg请确保你调用了CXTPMDIFrameWnd基类,例如:

BOOLCMainFrame:

:

OnCmdMsg(UINTnID,intnCode,

void*pExtra,AFX_CMDHANDLERINFO*pHandlerInfo)

{

//TODO:

Addyourspecializedcodehereand/orcallthebaseclassreturnCXTPMDIFrameWnd:

:

OnCmdMsg(nID,nCode,pExtra,pHandlerInfo);

}Commandbar的初始化Commandbar在使用之前必须进行初始化,而且它们必须在所有的controlbar对象(

比如你的statusbar)创建之后再被创建。

这是你为commandbar设置theme的好地方。

在标准版中你需要调用xtAfxData.bXPMode=true;设置theme为OfficeXP。

在专业版中

对每个组件你有theme

managers。

这允许你定义你自己的theme或者选用toolkit中已定义的theme。

这是一个如何初始化controlbar的例子:

intCMainFrame:

:

OnCreate(LPCREATESTRUCTlpCreateStruct)

{

if(CMDIFrameWnd:

:

OnCreate(lpCreateStruct)==-1)

return-1;//CreateStatusbar.

//Important:

AllcontrolbarsincludingtheStatusBar

//mustbecreatedbeforeCommandBars....

if(!

m_wndStatusBar.Create(this)||

!

m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failedtocreatestatusbar\n");

return-1;//failtocreate

}//Initializethecommandbars

if(!

InitCommandBars())

return-1;//Getapointertothecommandbarsobject.

CXTPCommandBars*pCommandBars=GetCommandBars();

if(pCommandBars==NULL)

{

TRACE0("Failedtocreatecommandbarsobject.\n");

return-1;//failtocreate

}//SetOffice2003Theme

CXTPPaintManager:

:

SetTheme(xtpThemeOfficeXP);return0;

}

使用coolmenu请注意:

在应用程序中不再有必要调用InstallCoolMenus初始化菜单的theme。

这由commandbar的thememanager来处理。

menubar的创建你需要更改你的代码使用pro版本的menubar。

使用了标准版toolkit的程序参

考CMainFrame:

:

OnCreate的CXTMenuBar对象。

在这里m_wndMenuBar对象被创建,

允许停靠被调用使menubar可以停靠在程序的工作区。

在专业版中做法有些不同,

没必要调用允许停靠了,例如:

intCMainFrame:

:

OnCreate(LPCREATESTRUCTlpCreateStruct)

{

if(CMDIFrameWnd:

:

OnCreate(lpCreateStruct)==-1)

return-1;//CreateStatusbar.

//Important:

AllcontrolbarsincludingtheStatusBar

//mustbecreatedbeforeCommandBars....

if(!

m_wndStatusBar.Create(this)||

!

m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failedtocreatestatusbar\n");

return-1;//failtocreate

}//Initializethecommandbars

if(!

InitCommandBars())

return-1;//Getapointertothecommandbarsobject.

CXTPCommandBars*pCommandBars=GetCommandBars();

if(pCommandBars==NULL)

{

TRACE0("Failedtocreatecommandbarsobject.\n");

return-1;//failtocreate

}//Addthemenubar

CXTPCommandBar*pMenuBar=pCommandBars->SetMenu(

_T("MenuBar"),IDR_MDISAMTYPE);

if(pMenuBar==NULL)

{

TRACE0("Failedtocreatemenubar.\n");

return-1;//failtocreate

}//Removetheoldmenubarcode...

//if(!

m_wndMenuBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP

//|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||

//!

m_wndMenuBar.LoadMenuBar(IDR_MAINFRAME))

//{

//TRACE0("Failedtocreatemenubar\n");

//return-1;//failtocreate

//}//m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);

//EnableDocking(CBRS_ALIGN_ANY);

//DockControlBar(&m_wndMenuBar);return0;

}toolbar的创建你需要更改你的代码去使用pro版本的toolbar。

相对于menubar,toolbar对象通常

在CMainFrame:

:

OnCreate中创建,而且调用允许停靠使toolbar停靠到程序的工作区。

Toolbar采用和menubar使用toolbar资源相似的创建方式,例如:

intCMainFrame:

:

OnCreate(LPCREATESTRUCTlpCreateStruct)

{

if(CMDIFrameWnd:

:

OnCreate(lpCreateStruct)==-1)

return-1;//CreateStatusbar.

//Important:

AllcontrolbarsincludingtheStatusBar

//mustbecreatedbeforeCommandBars....

if(!

m_wndStatusBar.Create(this)||

!

m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failedtocreatestatusbar\n");

return-1;//failtocreate

}//Initializethecommandbars

if(!

InitCommandBars())

return-1;//Getapointertothecommandbarsobject.

CXTPCommandBars*pCommandBars=GetCommandBars();

if(pCommandBars==NULL)

{

TRACE0("Failedtocreatecommandbarsobject.\n");

return-1;//failtocreate

}//Addthemenubar

CXTPCommandBar*pMenuBar=pCommandBars->SetMenu(

_T("MenuBar"),IDR_MDISAMTYPE);

if(pMenuBar==NULL)

{

TRACE0("Failedtocreatemenubar.\n");

return-1;//failtocreate

}//CreateToolBar

CXTPToolBar*pToolBar=(CXTPToolBar*)

pCommandBars->Add(_T("Standard"),xtpBarTop);

if(!

pToolBar||!

pToolBar->LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failedtocreatetoolbar\n");

return-1;

}//Removetheoldtoolbarcode...

//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("Failedtocreatetoolbar\n");

//return-1;//failtocreate

//}

//m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

//EnableDocking(CBRS_ALIGN_ANY);

//DockControlBar(&m_wndToolBar);return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1