常用接口
插入
可以设置 data 然后根据选中的 data 来判断是哪个。
auto item = m_ctrl_tree.InsertItem(L"几何常数"); m_ctrl_tree.InsertItem(L"测量工步"); m_ctrl_tree.InsertItem(L"预处理");
|
SetItemImage
BOOL SetItemImage( HTREEITEM hItem, int nImage, int nSelectedImage);
|
Notify
NM_CLICK
ON_NOTIFY(NM_CLICK, 4, &CFolderView::OnNMClickTree)
void OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult);
void CFolderView::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult) { g_pwndMain->m_spWndFileList->ActivateFrame(); *pResult = 0; }
typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } NMHDR;
|
TVN_SELCHANGING
ON_NOTIFY(TVN_SELCHANGING, 4, &CFolderView::OnTvnSelchangingFolder)
afx_msg void OnTvnSelchangingFolder(NMHDR *pNMHDR, LRESULT *pResult);
void CFolderView::OnTvnSelchangingFolder(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); *pResult = 0; }
|
TVN_SELCHANGED
ON_NOTIFY(TVN_SELCHANGED, 4, &CFolderView::OnTvnSelchangedFolder)
void OnTvnSelchangedFolder(NMHDR *pNMHDR, LRESULT *pResult);
void CFolderView::OnTvnSelchangedFolder(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); HTREEITEM hItem = pNMTreeView->itemNew.hItem; if (hItem == 0) { return; } if (hItem != m_curDbRootItem) { m_wndTree.SetItemImage(hItem, 1, 1); } if (pNMTreeView->itemOld.hItem != m_curDbRootItem) { m_wndTree.SetItemImage(pNMTreeView->itemOld.hItem, 2, 2); } m_wndTree.Expand(pNMTreeView->itemNew.hItem, TVE_EXPAND); *pResult = 0; }
|