分类: C/C++
2008-08-04 09:37:05
TangramMini组件是Tangram团队从Tangram框架产品中演绎出来的迷你微型版本,在非商业产品中可以免费使用,认证后还可以做商业开发,功能强大,主要用于软件产品框架设计、B/S与C/S无缝结合能及软件快速二次开发等。TangramMini组件包内部提供两个主要COM组件,一个为TangramMiniCtrl组件(此组件为ActiveX Control),主要功能是建立软件框架,另一个为TangramMiniB2C组件,主要功能是完成B/S与C/S的无缝连接,并且此组件包含了辅助创建TangramMiniCtrl控件的功能。
在此可以得到TangramMini组件的安装包下载()。下载组件安装后,安装包给我们提供了一个XTML Designer工具,这个工具可以以最快的速度设计出一个软件框架,以及TangramMini组件的使用帮助文档,以及相关的案例源码,好了,安装完了,我们就可以使用TangramMini组件了,开始我们的TangramMini组件应用之旅。
我计划先介绍TangramMiniCtrl控件的使用,等后续高级教程中介绍TangramMiniB2C完成B/S与C/S相结合的应用。
在这一篇中我们先学习TangramMini的最简单应用,完成一个对话框程序,并在上面利用TangramMini控件建立自己喜欢的框架。在这里我将设计如下一个软件框架:
一共分两页,其中第一页分三块,三块分别由上图1、2、3所示。第二页先空白,当然,你也可以自己决定设计点什么。
一、框架设计(设计XTML文件)
首先,我们启动XTML Designer,新建一个空白文档(选择模板列表中的Normal模板,然后确定即可)。用鼠标右击新建的文档空白区域,出现快捷菜单,选择“Tab Window Frame…”,出现“Create Tabbed Window”对话框,在Type中选择“tangramexceltabwnd”之后在pagename与pagetitle中分别输入名字与标题,然后单击Insert按钮,最后单击“OK”按钮,完成两个主页的建立,最后如下面两图所示:
两个主页面建立好之后,开始设计第一页,在第一页空白区域中右击鼠标,在右击菜单中选择“Splitter Window Frame…”,在弹出的对话框中输入1Rows和2Cols,然后确定,第一页分成了左右两个区域,这样完成了第一页中第一步的创建,然后右击第一页右边的区域,重复上面的步骤,输入2Rows和1Cols并完成确定,最终完成了框架的全部设计。如下图所示。
选择File菜单中Save功能,保存为一个xtml类型的文件,这个文件是一个框架界面的描述文件,其实我们可以用记事本打开此文件查看一下,这个xtml文件就是一个xml格式的文件,我们也可以用记事本修改此文件。假设我们当前把这个文件保存为d:\test.xtml文件,以后我们只要利用TangramMini组件包中的TangramMiniCtrl控件就可以在我们的软件中重现此框架。
二、使用XTML框架文件
我们的目标是完成一个对话框程序,内部建立上面的框架,现在我们框架已经设计好了,现在开始编码。启动Microsoft Visual C 开发环境,在这里我利用Microsoft Visual C 6.0开发此程序。我们首先新建一名为Tutorial1的对话框应用程序。启动开发环境之后,用主菜单中的File->New,在New对话框,选择Projects页,然后选择MFC AppWizard (exe),在Project name中输入Tutorial1,然后单击OK按钮,在向导的第一页选择Dialog based(对话框)类型,然后单击Finish完成对话框程序的创建。
向导生成完毕之后,打开资源中的主对话框,将上面我们不感兴趣的对象删除,在这里我们将中间的静态文本删除,然后选择主菜单中的Project -> Add To Project -> Components and Controls…菜单项,在打开的对话框中选择Registered ActiveX Controls文件夹,在里面选择“TangramMiniCtrl Class”,然后单击Insert按钮完成,并在相关的对话框中都选择确定完成组件类的生成,VC会刚生成的类自动添加到当前Tutorial1工程中,一般为CTangramMiniCtrl类与CTangramObjectInfo两个类。此时在Controls工具条上除了基本的VC自带的控件之外,多了一个TangramMiniCtrl Class控件,我们选择此控件,并画在主对话框上,然后编译程序并运行,通过上面的步骤之后,程序最终运行效果如下:
其中上边的对象即为TangramMiniCtrl组件。继续我们的程序,打开ClassWizard…对话框(View -> ClassWizard…),给刚才添加的TangramMiniCtrl控件添加控制变量m_wndMiniCtrl,变量类型为CTangramMiniCtrl。打开主对话框类(CTutorial1Dlg)中的OnInitDialog()方法中加入此语句代码:
m_wndMiniCtrl.LoadFile(_T("d:\\test.xtml"));这里加载的文件是刚才设计的框架文件。经过这一步之后,框架加载完成,最终效果如下:
好了,最简单的使用,在对话框上建立一个框架就完成了,下一篇我将给大家介绍如何在创建的框架上安装我们自己感兴趣的对象。
关键:要加载一个XTML文档,在这里我们使用LoadFile(…)方法,也可以直接用LoadXML(…)方法,LoadFile加载一个文件,LoadXML是加载一个XTML文本字符串。
BOOL LoadFile(LPCTSTR strXtmlFile); BOOL LoadXML(LPCTSTR strXML);
注:用LoadFile方法时,XTML文件可以指定为绝对路径或者以应用程序的文件夹下的相对路径,即:如果将test.xtml复制到与生成的exe文件为同一个文件夹下,我们可以用LoadFile(_T(“test.xtml”));就可以了,很方便使用。在这里我将test.xtml复制到了debug文件夹,将源码中改成了LoadFile(_T(“test.xtml”));。
PS:这里的设计的test.xtml文件不要删除,以后我将主要利用此文件。