win32強化練習4 7 快速建立TreeView

2021-07-24 22:40:44 字數 2579 閱讀 2608

這一節的練習就是快速建立乙個treevew,我們分成2步來完成,第1步是用win32 sdk,第2步是自己封裝類來簡化操作。

首先是win32 sdk建立乙個treeview:

1. 包含標頭檔案:#include

2. 宣告hwnd htreeview後,使用createwindow建立乙個treeview,為了方便觀察,加上ws_border出現邊框

3. 使用和操作treeview的結構體:tvinsertstruct tvs; 利用tvs.item.psztext來改變標題,tvs.hparent來指定是根目錄還是某個目錄的子節點

hwnd htreeview;
htreeview = createwindow("systreeview32",null,ws_child|ws_border|

ws_visible|tvs_haslines|tvs_hasbuttons|tvs_linesatroot,

10,20,200,400,hwnd,null,hinst,null);

tvinsertstruct tvs;

tvs.item.mask = tvif_text;

tvs.hinsertafter = tvi_last;

tvs.item.psztext = "node1";

tvs.hparent = null; //根節點1

htreeitem hnode1 = (htreeitem)sendmessage(htreeview,

tvm_insertitem,0,(lparam)&tvs);

tvs.item.psztext = "item1";

tvs.hparent = hnode1; //子節點1

(htreeitem)sendmessage(htreeview,tvm_insertitem,0,(lparam)&tvs);

tvs.item.psztext = "item2";

tvs.hparent = hnode1; //子節點2

(htreeitem)sendmessage(htreeview,tvm_insertitem,0,(lparam)&tvs);

tvs.item.psztext = "node2";

tvs.hparent = null; //根節點2

htreeitem hnode2 = (htreeitem)sendmessage(htreeview,

tvm_insertitem,0,(lparam)&tvs);

tvs.item.psztext = "item3";

tvs.hparent = hnode2;

(htreeitem)sendmessage(htreeview,tvm_insertitem,0,(lparam)&tvs);

tvs.item.psztext = "item4";

tvs.hparent = hnode2;

(htreeitem)sendmessage(htreeview,tvm_insertitem,0,(lparam)&tvs);

以上,就建立了乙個treeview,同時我們也發現了,如果要新增很多個節點,我們的**會不斷的重複,為了**復用以及方便,我們自己來封裝乙個類來簡化**。

封裝乙個類:

class mytv

htreeitem createmy(htreeitem hnode, char * str); //新增節點

private:

tvinsertstruct m_tvs;

hwnd hwndtree;

};htreeitem mytv::createmy(htreeitem hnode, char * str)

在此基礎上,我們對treeview的新增就非常方便了,結構體被隱藏了,結構體中的每項賦值也給隱藏了:

mytv me(htreeview);

htreeitem hnode1 = me.createmy(null, "這是根節點1");

me.createmy(hnode1, "子節點1");

me.createmy(hnode1, "子節點2");

me.createmy(hnode1, "子節點3");

me.createmy(hnode1, "子節點4");

htreeitem hnode2 = me.createmy(null, "這是根節點2");

me.createmy(hnode2, "子節點1");

me.createmy(hnode2, "子節點2");

me.createmy(hnode2, "子節點3");

me.createmy(hnode2, "子節點4");

程式顯示如下:

這樣,就可以通過讀取檔案的層級關係,用樹控制項顯示出來,而且很方便,很迅速。

win32強化練習4 0 資源相關練習簡介

第4部分,我們對資源進行強化練習!資源簡單的講有abcdimst這幾類,這當然不包括全部,其中 a accelerator 快捷鍵 b bitmap 位圖 c cursor 游標 d dialog 對話方塊 i icon 圖示 m menu 選單 s stringtable 字串表 t 工具欄 我們...

win32強化練習0 1 開發環境搭建

所謂win32,即32位的 windows 作業系統下 windows 早期是16 位的,稱為 win16 而 32位的就稱為 win32 win32 向下相容 win16。而所謂 applicationprogramminginte ce api 即應用程式介面 api是作業系統提供的介面,舉例來...

win32強化練習3 1 鍵盤控制小球移動

在第二部分我們已經對基本的控制項有了一些練習,控制項是視窗程式的基礎應用,不論是vc,vb,甚至excel html都會有這些控制項的應用。到第三部分,我們需要對各種訊息進行練習。並且從這裡開始,我們就很少再使用對話方塊程式了,我們可以使用任意一種帶有win32模板的ide,建立乙個標準的windo...