请问在对TreeCtrl的右键的事件捕捉的问题! 请问如何在得到右键时同时选中它(也就是等同左键的作用),我用了TreeView_SelectItem(this->GetSafeHwnd(),XXX);请问这个XXX用什么才能得到右键击的分支HTREEITEM??或者有什么其他方式.谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 希望对你有用http://codeguru.earthweb.com/treeview/right_button_menu.shtml 你需要得到的是什么是TEXT 还是这个分支的指针?NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here CString m_Root; CString m_Pre,m_Old; HTREEITEM hSelectedItem ,hRootItem; hSelectedItem = m_treeCtrl.GetSelectedItem(); m_select=m_treeCtrl.GetItemText(hSelectedItem); hRootItem=m_treeCtrl.GetParentItem(hSelectedItem); m_Root=m_treeCtrl.GetItemText(hRootItem); HTREEITEM hPreItem=m_treeCtrl.GetParentItem(hSelectedItem); m_Pre=m_Root; m_Old=m_Root; if(m_select!="A:") { while((m_Pre.GetLength()>1)&&(m_Pre!="A:")) { hRootItem=m_treeCtrl.GetParentItem(hRootItem); m_Pre=m_treeCtrl.GetItemText(hRootItem); if(m_Pre.GetLength()!=0) m_Root=m_Pre; } m_Pre=m_select; if ((m_select.GetLength()>1)&&(m_select!="A:")&&(m_select!=m_oldselect)) { if ((m_Root!=m_Pre)&&(m_Root.GetLength()>1)) m_select=m_Old+"\\"+m_select; while((m_Root!=m_Pre)&&(m_Root.GetLength()>1)&&(m_Pre.GetLength()>1)) { hPreItem=m_treeCtrl.GetParentItem(hPreItem); m_Pre=m_treeCtrl.GetItemText(hPreItem); if(m_Pre.GetLength()>1) m_select=m_Pre+"\\"+m_select; } m_pRightPaneFrame->m_pListCtrlView->OpenExistFile(m_select); } } m_oldselect=m_select; m_pRightPaneFrame->m_pListCtrlView->m_LeftSelect= m_select; *pResult = 0; 求:C++数据结构+算法,高手进 如何编程让系统恢复默认主题 有没有写得比较好的ribbo界面的代码 WriteFile的问题? 调用CView::GetParentFrame时候出错,急 类中const的问题- 初始化列表 关于端口的一个小问题 如何取得程序当前运行的目录? 应聘C / C++ / Pascal/ Basic程序语言,有程序案例介绍,详看视频链接 CSocket接受消息的问题 用Query新增、删除、修改数据的问题 为什么我不能用WizardBar?
http://codeguru.earthweb.com/treeview/right_button_menu.shtml
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CString m_Root;
CString m_Pre,m_Old;
HTREEITEM hSelectedItem ,hRootItem;
hSelectedItem = m_treeCtrl.GetSelectedItem();
m_select=m_treeCtrl.GetItemText(hSelectedItem);
hRootItem=m_treeCtrl.GetParentItem(hSelectedItem);
m_Root=m_treeCtrl.GetItemText(hRootItem);
HTREEITEM hPreItem=m_treeCtrl.GetParentItem(hSelectedItem);
m_Pre=m_Root;
m_Old=m_Root;
if(m_select!="A:")
{
while((m_Pre.GetLength()>1)&&(m_Pre!="A:"))
{
hRootItem=m_treeCtrl.GetParentItem(hRootItem);
m_Pre=m_treeCtrl.GetItemText(hRootItem);
if(m_Pre.GetLength()!=0)
m_Root=m_Pre;
}
m_Pre=m_select;
if ((m_select.GetLength()>1)&&(m_select!="A:")&&(m_select!=m_oldselect))
{
if ((m_Root!=m_Pre)&&(m_Root.GetLength()>1))
m_select=m_Old+"\\"+m_select;
while((m_Root!=m_Pre)&&(m_Root.GetLength()>1)&&(m_Pre.GetLength()>1))
{
hPreItem=m_treeCtrl.GetParentItem(hPreItem);
m_Pre=m_treeCtrl.GetItemText(hPreItem);
if(m_Pre.GetLength()>1)
m_select=m_Pre+"\\"+m_select;
}
m_pRightPaneFrame->m_pListCtrlView->OpenExistFile(m_select);
}
}
m_oldselect=m_select;
m_pRightPaneFrame->m_pListCtrlView->m_LeftSelect= m_select;
*pResult = 0;