莫認的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;
}