KUSHAL star5
Чтобы получить контекстное меню, всплывающее на точной дерева-списка, удерживая Ctrl текст добавить это внутри
Функция OnContextMenu
// Если вы хотите, чтобы это было сделано из события Onnmrclicktree1 Правой Кнопкой Мыши, вы можете вычислить точку как
//::GetCursorPos(&point);
UINT uFlags;
CRect rc;
CPoint clickpoint = point;
CPoint mypoint = point;
m_str_tree.ScreenToClient(&mypoint);
HWND htemp;
:: GetDlgItem(htemp,IDC_TREE);
HTREEITEM htItem = m_str_tree.HitTest(mypoint, &uFlags);
//To know which text is selcted
CString TreeText2 = m_str_tree.GetItemText(htItem);
m_str_tree.GetItemRect(htItem, &rc, TRUE);
// To check right click is on item text or not
if (mypoint.x > rc.right || mypoint.x < rc.left)
{
return;
}
or//<pre> if (! (htItem != nullptr && (TVHT_ONITEMLABEL & uFlags)))
{
return;
}
CMenu mnuPopupSubmit;
//Add your menu id
mnuPopupSubmit.LoadMenu(IDR_MENU1);
CMenu *mnuPopupMenu = mnuPopupSubmit.GetSubMenu(0);
ASSERT(mnuPopupMenu);
mnuPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, clickpoint.x, clickpoint.y, this);
<pre>//Adding images to the context Menu
void CPathFinderDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CDialogEx::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
// TODO: Add your message handler code here
HICON hIcon = AfxGetApp()->LoadIcon(IDB_IMAGE);
pPopupMenu->
//or directly load bitmaps as CBitmap m_bitmapvar_16;
//m_bitmapvar_16.LoadBitmap(IDB_IMAGE);
//ID__File is menu's option id
SetMenuItemBitmaps(ID__File, MF_BYCOMMAND, &m_bitmapvar_16, NULL);
}