KUSHAL star5 Ответов: 1

Сочетание клавиш Ctrl древовидного списка с помощью контекстного меню иконки, имеющих/растровые изображения ?


Контекстное меню становится всплывающим при выборе элемента ( а не при выборе текста) ,
Не удалось отобразить растровые изображения/значки в контекстном меню

Что я уже пробовал:

Контекстное меню появляется во всем списке деревьев с выбранным элементом .

1 Ответов

Рейтинг:
11

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);


}