软件框架的利器、TangramMini组件应用教程五:SDI中的应用
http://tech.ddvip.com 2007年08月29日 社区交流
内容摘要:本篇我将简单介绍一下TangramMini组件在SDI(单文档界面)程序中的使用。在SDI程序中利用TangramMini组件搭建框架使应用程序框架设计更加快捷、简单。
得到TangramMiniCtrl控件的引用之后,我们就像之前在对话框程序中使用TangramMiniCtrl控件了,首先调用LoadFile()方法加载框架文件,然后调用SetMDIClient(…)方法安装框架以及客户区。其中theApp.m_pClientView变量保存了当前视图的指针,关键在哪保存此值,大家可以查看源代码,使用SetMDIClient的方法表示将TangramMiniCtrl控件填充当前视图的位置,并将当前视图平移到名为Page1_S0001_S0000(你也可以用别的有效空白视图名称)的Tangram空白视图区域中。
BOOL SetMDIClient(BSTR strObjName, LONG nMDIHandle, LONG nMDIStyle);由于TangramMini组件最初的设计目的是针对MDI应用程序而设计的,所以存在这个SetMDIClient方法,此方法存在三个参数,第一个参数就是像其它方法一样,为Tangram空白视图的名称,第二个为MDI客户区窗口句柄,第三个参数为MDI客户区风格,其中nMDIStyle在本篇中无效果,不必关心。虽然这个方法是针对MDI应用程序而存在的,但是在普通的程序中也可以利用此方法,像现在在这个SDI中就要使用此方法。此方法的功能是将TangramMiniCtrl控件填充nMDIHandle句柄对应的位置,并将nMDIHandle窗口定位到strObjName区域中。也就是说TangramMiniCtrl自动适用nMDIHandle窗口的大小,并且平移nMDIHandle窗口的位置,有点难理解,也许是我自己也说不清,大家看最终效果就可以明白。
经过上面几个简单的步骤之后,最终的效果图如下。由于是在SDI应用程序中,为了视觉效果更好,我这里将之前设计的框架文件(test.xtml)文件用XTML Designer修改了一下,将之前介绍的3号Tangram空白视图区域重新设计为一个三页的Tab分页(分别为:Output、Building与Debug)。

有上图可见,TangramMiniCtrl控件填充了整个客户区,其实并不是TangramMiniCtrl控件自动填充了整个客户区,而是因为当前视图m_pClientView对象填充整个客户区,而调用SetMDIClient方法之后,TangramMiniCtrl控件就会自动适应m_pClientView对象的窗口位置,而且平移m_pClientView对象到指定的Tangram空白视图位置。我自己认为自己很难用文字上来解释清楚,也许大家已经明白了,我就不啰嗦了。
可以看出我们在一个简单的SDI程序中利用TangramMini组件就很快速的建立了一个复杂框架,我相信大家通过之前几篇关于对话框程序的了解,应该可以自行的在其余的Tangram空白视图中安装自己感兴趣的窗口对象,在这里我就安装一个简单的CEdit box窗口到名为Output的Tangram空白视图区域中,效果如下图所示,具体细节请查看源代码。

好了,关于TangramMini组件在SDI应用程序中的使用就简单介绍到这里,从下一篇我将开始介绍TangramMini组件在MDI(多文档界面)应用程序中的使用,由于刚开始我说明了TangramMini组件最初的设计是为MDI程序而设计的,所以TangramMini组件在MDI应用程序中功能最为强大,表现形式也最好,另外非常感谢大家的关注。
来源:vckbase 作者:骆归 责编:豆豆技术应用
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……