1. 重载CTreeCtrl
class CPopMenuTreeCtrl : public CTreeCtrl
2. 增加消息函数
void CPopMenuTreeCtrl::OnRButtonDown(UINT nFlags, CPoint point)
{
HTREEITEM hItem = HitTest(point,&nFlags);
SelectItem(hItem);
CTreeCtrl::OnLButtonDown(nFlags, point);
}
void CPopMenuTreeCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
HTREEITEM hItem = HitTest(point,&nFlags);
SelectItem(hItem);
CTreeCtrl::OnLButtonDown(nFlags, point);
}
3. 在主对话框中增加树形数据的初始化
void CMainDlg::OnDisplayType()
{
m_cTypeTree.DeleteAllItems();
//增加根节点
HTREEITEM hRoot = m_cTypeTree.InsertItem("分类管理");
m_cTypeTree.SetItemData(hRoot,NULL_ITEM);
//增加其他节点
HTREEITEM hItem = NULL;
for( int i=0; i<m_TypeList.size(); i++)
{
hItem = m_cTypeTree.InsertItem(m_TypeList[i].GetName(),0,0,hRoot);
m_cTypeTree.SetItemData(hItem,m_TypeList[i].GetID());
}
}
4. 在主对话框中增加消息函数
void CMainDlg::OnClickTreeTrigger(NMHDR* pNMHDR, LRESULT* pResult)
{
HTREEITEM hItem = m_cTypeTree.GetSelectedItem();
if(hItem != NULL)
{
int nID = m_cTypeTree.GetItemData(hItem);
if(nID == NULL_ITEM)//根节点
{
}
else//子节点
{
}
}
*pResult = 0;
}
void CMainDlg::OnRclickTreeTrigger(NMHDR* pNMHDR, LRESULT* pResult)
{
HTREEITEM hItem = m_cTypeTree.GetSelectedItem();
if(hItem != NULL)
{
int nID = m_cTypeTree.GetItemData(hItem);
if(nID == NULL_ITEM)//根节点
{
}
else//子节点
{
}
}
*pResult = 0;
}