在TreeCtrl中使用Edit功能

2021-09-21 08:51:05 字數 974 閱讀 8525

以前常常有人問起怎樣儲存treectrl中editlables編輯過的內容,雖然有相關的文章,但是老是有人說不能用。

首先了講該treelist應該使用tvs_editlabels風格,可以在建立資源時指定,或者在使用create時指定,或者在precreatewindos()中改變。我的**是:

const dword dwviewstyle = ws_child | ws_visible | tvs_haslines | tvs_linesatroot | tvs_hasbuttons | tvs_editlabels;

if (!m_wndtree1.create (dwviewstyle, rectdummy, &m_wndtabs, 2) || !m_wndtree2.create (dwviewstyle, rectdummy, &m_wndtabs, 3))

紅色的部分是關鍵!這樣你就可以通過當即treeitem來編輯其標題了!

接下來需要處理tvn_beginlabeledit和tvn_endlabeledit訊息。 

void cmytree::onbeginlabeledit(nmhdr* pnmhdr, lresult* presult) 

如果不處理 tvn_endlabeledit 訊息,則文字的更改不會生效。

void coutline::onendlabeledit(nmhdr* pnmhdr, lresult* presult) 

注:上面這段**來自聞逸洋《在treelist中使用edit功能》

這裡,你可以新建乙個類,cmytree,然後再通過classwizard為其新增tvn_beginlabeledit和tvn_endlabeledit訊息
classwizard為我們做出來的**為:
protected:

//}afx_msg

好了,編譯通過以後你就可以通過當即treeitem來編輯並儲存其標題了!

在TreeView中獲得TreeCtrl指標

一般來說,在文件 視 框架中使用ctreeview類,而在基於對話方塊的程式中使用ctreectrl類,而ctreeview實際上是包裝了乙個ctreectrl物件,因此我們可以通過ctreeview gettreectrl 來得到ctreectrl的指標,然後就直接操作ctreectrl物件吧 新...

在中使用SQLDMO

曾幾何時,夥伴們為的公升級傷透了腦筋.往往程式的公升級趕不上資料庫的公升級 版本控制的好,這也許不是什麼問題,但對於很大一部分中國公司來說這是無法避免的 而有些n久以前的資料庫要使用新程式的時候,資料庫的公升級簡直就是無從下手.所以對比資料庫公升級的緊要性就逐漸的凸現出來.對於表和字段的公升級按道理...

樹形控制項TreeCtrl的基本使用

1 插入結點 insertitem 可以插入根節點和子節點 2 獲取與設定結點的文字 getitemtext setitemtext 3 刪除某個結點 deleteitem 4 刪除所有結點 deleteallitems 5 收起與展開結點 expand 6 獲取與設定選擇結點 getselecte...