void CBookmarksView::OnContextMenu(HWND /*phWnd*/, CPoint pPoint) { WTL::CMenu m; m.LoadMenu(IDR_POPUP_BOOKMARKS); bool noCount = m_list.GetItemCount() == 0; bool noSelection = m_list.GetSelectedCount() == 0; m.EnableMenuItem(ID_BOOKMARKS_OPEN, noCount || noSelection ? MF_DISABLED : MF_ENABLED); m.EnableMenuItem(ID_BOOKMARKS_SAVE, noCount ? MF_DISABLED : MF_ENABLED); m.EnableMenuItem(ID_BOOKMARKS_CLEAR, noCount ? MF_DISABLED : MF_ENABLED); m.EnableMenuItem(ID_BOOKMARKS_LOADMERGE, noCount ? MF_DISABLED : MF_ENABLED); m.EnableMenuItem(ID_BOOKMARKS_DELETEFROMLIST, noCount || noSelection ? MF_DISABLED : MF_ENABLED); unsigned int id = m.GetSubMenu(0).TrackPopupMenuEx(TPM_RETURNCMD, pPoint.x, pPoint.y, m_hWnd, NULL); switch (id) { case ID_BOOKMARKS_OPEN: { OnOpen(); } break; case ID_BOOKMARKS_SAVE: { OnSaveFile(); } break; case ID_BOOKMARKS_LOAD: { OnLoadFile(); } break; case ID_BOOKMARKS_LOADMERGE: { OnLoadFile(true); } break; case ID_BOOKMARKS_DELETEFROMLIST: { OnDeleteLines(); } break; case ID_BOOKMARKS_CLEAR: { if (MessageBox(CLEAR_BOOKMARKS_MSG, _T("Warning"), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2) != IDYES) { return; } OnClear(NULL, NULL, NULL); } break; } }
LRESULT CMainDlg::OnSaveSelected(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { CTreeItem ti = m_Tree.GetSelectedItem(); if(ti) { int out = ti.GetData()-1; if(out >= 0) { OnSaveFile(wNotifyCode, wID, hWndCtl, bHandled); } else { OnSaveFolder(wNotifyCode, wID, hWndCtl, bHandled); } } return 0; }