
XtremeToolkitPro使用经验总结.doc
7页XtremeToolkitPro使用经验总结1前言1.1安装和使用1.1.1怎样安装和编译XTP?XTP提供了安装包,安装和编译都非常方便主要要注意选择我们所需的编译器和编译版本编译器目前选择VisualC++Version8.0(2005),编译配置包含以下三种:AsaDLLAsstaticlibrary一forapplicationsusingMFCasDLLAsstaticlibrary一forapplicationsusingMFCasstaticlibrary其中第一个是将XTP编译成动态链接库,后面两个是将XTP编译成静态链接库,第二个MFC使用的是动态库,而第三个MFC使用的是静态库如果应用程序是单个发布,并且考虑到用户机器可能没有MFC动态库,这种情况下采用第三个配置比较好,如果是发布整个项目项目中很多应用程序都使用到了MFC和Xtreme,那么采用前两个配置比较合适因此我们应根据实际情况在应用程序中选择使用所需的Xtreme版本Xtreme支持Unicode,编译之前必须选择“UnicodeSupport”详细内容参见其附带的《UserGuide》文档1.1.2静态链接在stdafx.h文件末尾加上:#define_XTP_STATICLINK#include
1・1・3使用中文版本的XTP动态链接库:打开XTP工程,找到源文件ToolkitPro.rc并选中它,选择菜单[Proje(OProperties],在【Resources—General】下的【PreprocessorDefinitions】中加入_XTP_RESOURCE_LANGUAGE=zh_CN,注意与已有的宏定义之间需要用分号隔开然后重新编译即可静态链接库:在应用工程的*.rc2文件末尾加上如下代码:#define_XTP_RESOURCE_LANGUAGEzh_CN#include"XTToolkitPro.rc"需说明的是,这里的zh_CN实际上是资源文件的后缀名,比如,在“Source/Calendar/res”目录下存在很多.re文件,以zh_CN作后缀的表示中文资源文件因此,如果我们需要使用其它语言的XTP库,只需将宏_XTP_RESOURCE_LANGUAGE定义相应语言对应的资源文件后缀名即可解决fatalerrorC1083:Cannotopenincludefile:'XTToolkitPro.h':Nosuchfileordirectory设置环境目录D:\ProgramFiles\CodejockSoftware\MFC\XtremeToolkitProv11.2.2\SourceD:\ProgramFiles\CodejockSoftware\MFC\XtremeToolkitProv11.2.2\lib\vc80#define_XTP_STATICLINK1.2窗口停靠(Docking)1.2.1 如何关闭和显示停靠面板?停靠面板CXTPDockingPane中的Hide方法指的是将停靠面板“折叠”起来以标签形式显示在停靠边上,而Close方法才是将整个面板完全隐藏。
注意调用Close后,控件不会销毁,仅仅是不显示通过IsClosed方法可以判断面板当前是否为关闭状态停靠面板的显示是通过其管理类CXTPDockingPaneManager的showPane方法来实现下面的代码片段显示了通过菜单来控制某个停靠窗口的关闭和显示:voidCMainFrame::OnViewPreview(){#XtremeToolkitPro使用经验总结1刖言1.7窗口大小与位置(Resize)if(m_pwndPanePreview-〉IsClosed())m_paneManager.ShowPane(m_pwndPanePreview,FALSE);elsem_pwndPanePreview-〉Close();}voidCMainFrame::OnUpdateViewPreview(CCmdUI*pCmdUI){pCmdUI-〉SetCheck(!m_pwndPanePreview-〉IsClosed());}1.2.2如何限制客户区的大小?在有停靠窗口的SDI或MDI界面中,客户区(比如视图)不会响应WM_GETMINMAXINFO消息,大小并不会受其处理函数的影响,而是由CXTPDockingPaneManager所控制。
CXTPDockingPaneManager有一个公共成员变量m_ptMinClientSize用于限制视图区的大小,示例代码如下:m_paneManager.m_ptMinClientSize=CPoint(400,200);1.3工具栏(Toolbar)1.3.1 怎样禁止菜单栏移动?pCommandBars-〉SetMenu(_T"MenuBar"),IDR_MAIN_MENU);//设置菜单CXTPMenuBar*pMenuBar=GetMenuBar();//获得菜单pMenuBar-〉EnableDocking(xtpFlagAlignTop);//禁止菜单栏浮动,只在窗口上方显示pMenuBar—〉ModifyBarStyle(CBRS_GRIPPER,0);//禁止菜单栏移动1.3.2 怎样隐藏菜单栏?菜单栏等工具栏是放置于CXTPDockBar上的,当我们隐藏菜单栏后,CXTPDockBar并不会隐藏,因此会在界面上留下一条矩形区域,由于CXTPDockBar也是从CWnd派生的,因此只需将CXTPDockBar隐藏即可具体方法为:pMenuBar-〉SetVisible(FALE);//隐藏菜单栏pMenuBar-〉GetDockBar()-〉ShowWindow(SW_HIDE);//隐藏DockBar显示或隐藏工具条也可以通过CXTPCommandBars::ToggleVisible实现,它在调用CXTPToolBar::SetVisible的同时,还会更新数据修改标志。
1.4分割窗口1.4.1 为什么使用静态库时鼠标指针位于分割条上不显示“调整大小”光标?这是由于“调整大小”光标是XTreme的自定义资源,我们需要在*.rc2文件中包含资源文件,如下:#include
XtremeToolkitPro使用经验总结#。
