程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 軟件框架的利器、TangramMini組件應用教程二:安裝對象

軟件框架的利器、TangramMini組件應用教程二:安裝對象

編輯:關於VC++

在上一篇教程中,我們生成了一個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組件確實很好用,我第一次使用的時候發現這麼方便很驚訝,因為一個簡單的對話框中利用了此組件之後,完全成了一個軟件的模型

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved