TreeView如何進行右鍵選擇

莫認的TreeView是左鍵選擇,比較不習慣。在網上找了半天也沒找到右鍵選擇的例子。只好自己寫吧。

 

1,首先截取右鍵NOTIFY消息。

 

NOTIFY_CODE_HANDLER(NM_RCLICK, OnTreeViewRBtnClick)

 

2,先要獲得右鍵所點的Item。再選中這個Item,需要的話顯示一個右鍵菜單。

 

 LRESULT OnTreeViewRBtnClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/)
 {
  DWORD pos = GetMessagePos();
  POINT pnt;
  pnt.x = GET_X_LPARAM(pos);
  pnt.y = GET_Y_LPARAM(pos);

  m_treeview.ScreenToClient(&pnt);

  HTREEITEM item = m_treeview.HitTest(pnt, NULL);

  if(item == NULL)
   return 0;


  TreeView_SelectItem(m_treeview, item);

//show a context menu

  CMenu menu;
  menu.LoadMenu(IDR_MENU1);
  CMenu contextmenu = menu.GetSubMenu(0);

  m_CmdBar.TrackPopupMenu(contextmenu,TPM_LEFTBUTTON|TPM_RIGHTBUTTON, GET_X_LPARAM(pos), GET_Y_LPARAM(pos)); 
  return 0; 
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章