- 如何插入數據項目?
- 如何添加鼠標右擊事件?
插入數據項
通過InsertItem()方法,有四種重載樣式:
HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct); HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam,HTREEITEM hParent, HTREEITEM hInsertAfter); HTREEITEM InsertItem(LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT,HTREEITEM hInsertAfter = TVI_LAST); HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage, int nSelectedImage,HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);
索引
lpInsertStruct | TVINSERTSTRUCT結構指針,TVINSERTSTRUCT結構中包含了插入操作的詳細信息 |
nMask | 節點的哪些信息被設置 |
lpszItem | 節點的文本 |
nImage | 節點的圖像索引 |
nSelectedImage | 節點選中時的圖像索引 |
nState | 節點的哪些狀態被設置 |
lParam | 指定關聯節點的附加信息 |
hParent | 父節點句柄 |
hInsertAfter | 新插入節點后面的節點句柄 |
示例:
CString userTreeHeader[3]={"醫生","售藥員","管理員"};HTREEITEM userItem[3];for(int i=0;i<3;i++){userItem[i]=m_theTreeCtrl->InsertItem(userTreeHeader[i],0,0,TVI_ROOT,TVI_LAST);m_theTreeCtrl->SetItemData(userItem[i],(DWORD)i);}
?
?
?
如何添加鼠標右擊事件?
控件中添加NM_RCLICK事件。
示例:
void CMyDlg::OnRclickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
CPoint cp; GetCursorPos(&cp); m_Tree.ScreenToClient(&cp); HTREEITEM titem = m_Tree.HitTest(cp, NULL); // 以上很關鍵,保證右鍵點擊的位置是樹葉或樹枝 if(titem) {AfxMessageBox(m_Tree.GetItemText(titem)); }
*pResult=0;
}
?