首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于CTreeView右键弹出菜单的一些疑惑?解决方法

2012-02-16 
关于CTreeView右键弹出菜单的一些疑惑?afx_msg void DriveTreeView::OnRButtonUp(UINT nFlags, CPoint poi

关于CTreeView右键弹出菜单的一些疑惑?
afx_msg void DriveTreeView::OnRButtonUp(UINT nFlags, CPoint point)
{
CMenu menu;  
GetCursorPos(&point);

if(!menu.LoadMenuA(IDR_MENU2))  
  return;  
  CMenu* pSubMenu = menu.GetSubMenu(0);  
  if(!pSubMenu)  
  return;  
  ClientToScreen(&point);  
   
  TrackPopupMenu(pSubMenu->m_hMenu,0,point.x,point.y,0,m_hWnd,NULL);  
  ScreenToClient(&point);  
   
  CTreeView::OnRButtonUp(nFlags, point); 
//return afx_msg void();
}
本来打算在树状视图里右键弹出菜单的,但不报错,功能也不能实现,请好心人指点!谢谢!

[解决办法]
ScreenToClient(&point);
为什么还要把屏幕坐标转化到客户区坐标,去掉后试试。
[解决办法]
TrackPopupMenu 需要的是屏幕的坐标, CTreeView::OnRButtonUp需要的是树控件的坐标,所要要转换回来,否则计算单击的位置就不对了

热点排行