软件框架的利器、TangramMini组件应用教程二:安装对象
2007-08-14 21:35:32 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖闂佺娅曢幑鍥灳閺冨牆绀冩い蹇庣娴滈箖鏌ㄥ┑鍡欏嚬缂併劎绮妵鍕箳鐎n亞浠鹃梺闈涙搐鐎氫即鐛崶顒夋晬婵絾瀵ч幑鍥蓟閻斿摜鐟归柛顭戝枛椤牆顪冮妶搴′簼缂侇喗鎸搁悾鐑藉础閻愬秵妫冮崺鈧い鎺戝瀹撲礁鈹戦悩鎻掝伀缁惧彞绮欓弻娑氫沪閹规劕顥濋梺閫炲苯澧伴柟铏崌閿濈偛鈹戠€n€晠鏌嶆潪鎷屽厡闁汇倕鎳愮槐鎾存媴閸撴彃鍓卞銈嗗灦閻熲晛鐣烽妷褉鍋撻敐搴℃灍闁绘挻娲橀妵鍕箛闂堟稐绨肩紓浣藉煐濮樸劎妲愰幘璇茬闁冲搫鍊婚ˇ鏉库攽椤旂》宸ユい顓炲槻閻g兘骞掗幋鏃€鐎婚梺瑙勬儗閸樺€熲叺婵犵數濮烽弫鍛婃叏椤撱垹纾婚柟鍓х帛閳锋垶銇勯幒鍡椾壕缂備礁顦遍弫濠氱嵁閸℃稒鍊烽柛婵嗗椤旀劕鈹戦悜鍥╃У闁告挻鐟︽穱濠囨嚃閳哄啰锛滈梺褰掑亰閸欏骸鈻撳⿰鍫熺厸閻忕偟纭堕崑鎾诲箛娴e憡鍊梺纭呭亹鐞涖儵鍩€椤掑啫鐨洪柡浣圭墪閳规垿鎮欓弶鎴犱桓闂佸湱枪閹芥粎鍒掗弮鍫熷仺缂佸顕抽敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掍胶绠剧€光偓婵犱線鍋楀┑顔硷龚濞咃絿妲愰幒鎳崇喓鎷犻懠鑸垫毐闂傚倷鑳舵灙婵炲鍏樺顐ゆ嫚瀹割喖娈ㄦ繝鐢靛У绾板秹寮查幓鎺濈唵閻犺櫣灏ㄥ銉р偓瑙勬尭濡繂顫忛搹鍦<婵☆垰鎼~宥囩磽娴i鍔嶉柟绋垮暱閻g兘骞嬮敃鈧粻濠氭偣閸パ冪骇鐎规挸绉撮—鍐Χ閸℃ê闉嶇紓浣割儐閸ㄥ墎绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹

在上一篇教程中,我们生成了一个XTML文档,并且使用Microsoft Visual C++ 6.0生成了一个Tutorial1对话框程序,在这一篇中,我将介绍怎样在建立的框架上安装自己感兴趣的对象。
首先,我先介绍一下TangramMiniCtrl组件怎样在空白区域安装一个对象。此组件提供了方法SetWnd()安装一个窗口对象,在以后的介绍中我统一将空白区域叫做一个Tangram节点对象,每一个这样的空白区域对应TangramMini组件中的一个TangramObjectInfo对象。
BOOL SetWnd(LPCTSTR strObjName, long hHostWnd);
该方法需要两个参数,第一个参数为Tangram节点对象名称(字符串类型),第二个参数为窗口句柄(整型)。返回为一个布尔型值,表示设置是否成功。在TangramMini组件中只要与Tangram节点相关的都由Tangram节点名称决定,我们只要知道这一个基本方法就可以用好TangramMiniCtrl组件了,好了,我们开始真正的安装。
在上一篇中我们设计的XTML文档中第一页中包含了三个区域部分,这里我们将在三个区域中:
第一个区域安装一个List Control,
第二个区域安装一个Tree Control,
第三个区域安装一个Edit Box,
首先,我们在主对话框中分别画上三个控件,与位置以及大小无关,只要画上即可,然后利用ClassView…(View -> ClassView…)分别定义三个控制变量:m_wndList、m_wndTree、m_wndEdit分别与上面三个控件对应。先看看现在我们现在做的例子的运行效果:
通过上图,我可以看出三个对象(三个白色的对象)位置杂乱。
打开主对话框类(CTutorial1Dlg)中的OnInitDialog()方法中m_wndMiniCtrl.LoadFile (_T("test.xtml"));语句之后加入以下语句代码:
m_wndMiniCtrl.SetWnd(_T("Page1_S0000"),(long)m_wndTree.m_hWnd);
m_wndMiniCtrl.SetWnd(_T("Page1_S0001_S0000"),(long)m_wndList.m_hWnd);
m_wndMiniCtrl.SetWnd(_T("Page1_S0001_S0100"),(long)m_wndEdit.m_hWnd);
其中用了三次SetWnd方法,其中第一个参数是三个Tangram节点对象的名称(空白区域名称),
注:这个名称,我们可以先运行一次,双击空白区域,就可以复制到当前Tangram节点对象(空白区域)的名称(因为TangramMiniCtrl组件上面已经说明了双击可以复制名称)。
通过上面的步骤之后,运行程序,最终效果如下:
我们会发现,通过上面的几个步骤之后,三个对象都平铺到对应的Tangram节点区域中,显得非常整齐合理。
也许在你的程序中每次重新启动运行后,窗体的大小位置会恢复到XTML文档设计的时的大小,如果你想记住你每次改变框架后的尺寸,可以调用Save()方法,这样方法可以保存当前框架的尺寸。
BOOL Save();
该方法没有参数,返回布尔值,表示保存是否成功。
在主对话框资源上双击OK按钮,添加OnOK()方法,VC开发环境自动转入void CTutorial1Dlg::OnOK()函数体中,添加:m_wndMiniCtrl.Save();语句,最终函数体如下:
加入此语句之后,只要我们单击OK按钮关闭对话框时,TangramMiniCtrl组件自动帮我们记录当前框架的尺寸,下次再LoadFile的时候,组件恢复当前记录的尺寸。
这一篇的工作完成了,总结一下,用TangramMini组件确实很好用,我第一次使用的时候发现这么方便很惊讶,因为一个简单的对话框中利用了此组件之后,完全成了一个软件的模型
更多精彩
赞助商链接