void CLeftView::OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CPoint pt = GetCurrentMessage()->pt; //获取当前鼠标点击消息的坐标点
m_treeCtrl.ScreenToClient(&pt); //将鼠标的屏幕坐标,转换成树形控件的客户区坐标
UINT uFlags = 0;
HTREEITEM hItem = m_treeCtrl.HitTest(pt, &uFlags);//然后做点击测试
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//如果点击的位置是在节点位置上面
{
m_treeCtrl.SelectItem(hItem);
//获取开始我们设置的数据,注意这就是我为什么开始要每个节点设置不同的数据的原因。当然,如果你的数据节点比较少,你也可以通过获取节点的文字,如上面设置的"海淀区",然后通过字符串比较来判断点击了哪个节点
int nDat = m_treeCtrl.GetItemData(hItem);
CString str=m_treeCtrl.GetItemText(hItem);
//然后根据不同的节点,你完成不同的动作即可
switch (nDat)
{
case 0:
AfxMessageBox("CA证书");
break;
case 1:
AfxMessageBox("CA证书1");
break;
case 2:
AfxMessageBox("CA证书2");
break;
case 3:
AfxMessageBox("CA证书3");
break;
case 4:
AfxMessageBox("CA证书4");
break;
default:
AfxMessageBox("ERROR");
}
}
*pResult = 0;
}