CTreeCtrl 右键选中节点并显示菜单
2009-01-12 12:28
459 查看
void C***Dlg::OnRclickTreeKey(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
// 选中当前右键点击的节点
POINT pos ;
if(!GetCursorPos(&pos))
return ;
m_KeyList.ScreenToClient(&pos);
UINT uFlags;
HTREEITEM hItem = m_KeyList.HitTest(pos, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_KeyList.Select(hItem, TVGN_CARET);
}
// 显示菜单
CRect rect ;
this->GetClientRect(&rect) ;
ClientToScreen(&rect) ;
m_KeyList.ClientToScreen(&pos);
int iCode= rect.PtInRect(pos) ;
CMenu m_Menu,*p_Menu=NULL ;
if(iCode)
{
m_Menu.LoadMenu( IDR_MENU_REG) ;
p_Menu = (CMenu*) m_Menu.GetSubMenu(0);
if( p_Menu != NULL)
p_Menu->TrackPopupMenu( TPM_RIGHTBUTTON|TPM_LEFTALIGN, pos.x, pos.y, this);
p_Menu = NULL;
//mouse_event(MOUSEEVENTF_RIGHTUP, pos.x, pos.y, 0, NULL);
}
// AfxMessageBox(m_szMsg);
*pResult = 0;
}
{
// TODO: Add your control notification handler code here
// 选中当前右键点击的节点
POINT pos ;
if(!GetCursorPos(&pos))
return ;
m_KeyList.ScreenToClient(&pos);
UINT uFlags;
HTREEITEM hItem = m_KeyList.HitTest(pos, &uFlags);
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
m_KeyList.Select(hItem, TVGN_CARET);
}
// 显示菜单
CRect rect ;
this->GetClientRect(&rect) ;
ClientToScreen(&rect) ;
m_KeyList.ClientToScreen(&pos);
int iCode= rect.PtInRect(pos) ;
CMenu m_Menu,*p_Menu=NULL ;
if(iCode)
{
m_Menu.LoadMenu( IDR_MENU_REG) ;
p_Menu = (CMenu*) m_Menu.GetSubMenu(0);
if( p_Menu != NULL)
p_Menu->TrackPopupMenu( TPM_RIGHTBUTTON|TPM_LEFTALIGN, pos.x, pos.y, this);
p_Menu = NULL;
//mouse_event(MOUSEEVENTF_RIGHTUP, pos.x, pos.y, 0, NULL);
}
// AfxMessageBox(m_szMsg);
*pResult = 0;
}
相关文章推荐
- CTreeCtrl 右键选中节点并显示菜单
- C# winform treeview node添加右键菜单并选中节点
- treeView右键快捷菜单如何选中当前节点
- CTreeCtrl中,右键点击并没有选中节点
- C# winform treeview node添加右键菜单并选中节点
- TreeList 右击节点时才显示右键菜单,并使该节点获得焦点
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- 引用 CTreeCtrl中用右键选中item并弹出菜单的方法(转)
- datagridview右键菜单鼠标当前所在数据行进行选中,并在无数据时不显示右键菜单。
- MFC CTreeView学习之右键菜单_获取选中节点的方式HitTest和GetSelectedItem的区别(二)
- Radtreeview使其只在某层节点上显示右键菜单(telerik控件)
- C# TreeView树控件,失去焦点仍然高亮显示,右击节点时才弹出右键菜单,空白处右击不弹出菜单
- 引用 CTreeCtrl中用右键选中item并弹出菜单的方法
- MFC中CTreeCtrl右击选中节点并弹出右击菜单
- C# winform treeview node添加右键菜单并选中节点
- C# winform treeview node添加右键菜单并选中节点
- C# treeview右键菜单、选中节点
- C# winform treeview node添加右键菜单并选中节点
- C# 树的不同节点显示不同的右键菜单
- 关于treeview节点右键选中并关联右键菜单