void CIrcChannelListCtrl::OnContextMenu(CWnd*, CPoint point) { int iCurSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); CTitleMenu menuChannel; menuChannel.CreatePopupMenu(); menuChannel.AddMenuTitle(GetResString(IDS_IRC_CHANNEL)); menuChannel.AppendMenu(MF_STRING, Irc_Join, GetResString(IDS_IRC_JOIN)); if (iCurSel == -1) menuChannel.EnableMenuItem(Irc_Join, MF_GRAYED); GetPopupMenuPos(*this, point); menuChannel.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); VERIFY( menuChannel.DestroyMenu() ); }
void CFeedIcoItemListCtrl::UpdateMenuState(CTitleMenu & menuRSS) { if( !CGlobalVariable::IsRunning() ) { return; } //设置菜单状态 int iSelectedItems = GetSelectedCount(); if(iSelectedItems && iSelectedItems == 1) { int nIndex = GetCurrSelectIndex(); if ( nIndex >= 0 ) { if ( CRssFeed* pFeed = GetFeed(nIndex) ) { //删除不用的menu项 menuRSS.DeleteMenu(MP_OPEN,MF_STRING); menuRSS.DeleteMenu(MP_RESUME,MF_STRING); //下载所有||暂停 if (pFeed->ExistDownloadingItem()) { menuRSS.EnableMenuItem(MP_PAUSE, MF_ENABLED); } if (pFeed->ExistUnloadItem()) { menuRSS.EnableMenuItem(MP_DOWNLOAD_ALL, MF_ENABLED); } menuRSS.EnableMenuItem(MP_CANCEL, MF_ENABLED); menuRSS.EnableMenuItem(MP_REFRESH, MF_ENABLED); menuRSS.EnableMenuItem(MP_OPTIONS, MF_ENABLED); menuRSS.EnableMenuItem(MP_OPENFOLDER, MF_ENABLED); } } } else//空白处右键 { menuRSS.DeleteMenu(MP_OPEN,MF_STRING); menuRSS.DeleteMenu(MP_OPENFOLDER,MF_STRING); menuRSS.DeleteMenu(MP_DOWNLOAD_ALL,MF_STRING); menuRSS.DeleteMenu(MP_RESUME,MF_STRING); menuRSS.DeleteMenu(MP_PAUSE,MF_STRING); menuRSS.DeleteMenu(MP_CANCEL,MF_STRING); menuRSS.DeleteMenu(MP_OPTIONS,MF_STRING); //menuRSS.DeleteMenu(MF_SEPARATOR,MF_STRING); if ( this->GetItemCount() > 0 ) { menuRSS.EnableMenuItem(MP_REFRESH, MF_ENABLED); } else { menuRSS.DeleteMenu(MP_REFRESH,MF_STRING); } } }
void CFriendListCtrl::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { CTitleMenu ClientMenu; ClientMenu.CreatePopupMenu(); ClientMenu.AddMenuTitle(GetResString(IDS_FRIENDLIST), true); const CFriend* cur_friend = NULL; int iSel = GetNextItem(-1, LVIS_SELECTED | LVIS_FOCUSED); if (iSel != -1) { cur_friend = (CFriend*)GetItemData(iSel); ClientMenu.AppendMenu(MF_STRING,MP_DETAIL, GetResString(IDS_SHOWDETAILS), _T("CLIENTDETAILS")); ClientMenu.SetDefaultItem(MP_DETAIL); } ClientMenu.AppendMenu(MF_STRING, MP_ADDFRIEND, GetResString(IDS_ADDAFRIEND), _T("ADDFRIEND")); ClientMenu.AppendMenu(MF_STRING | (cur_friend ? MF_ENABLED : MF_GRAYED), MP_REMOVEFRIEND, GetResString(IDS_REMOVEFRIEND), _T("DELETEFRIEND")); ClientMenu.AppendMenu(MF_STRING | (cur_friend ? MF_ENABLED : MF_GRAYED), MP_MESSAGE, GetResString(IDS_SEND_MSG), _T("SENDMESSAGE")); ClientMenu.AppendMenu(MF_STRING | ((cur_friend==NULL || (cur_friend && cur_friend->GetLinkedClient(true) && !cur_friend->GetLinkedClient(true)->GetViewSharedFilesSupport())) ? MF_GRAYED : MF_ENABLED), MP_SHOWLIST, GetResString(IDS_VIEWFILES) , _T("VIEWFILES")); ClientMenu.AppendMenu(MF_STRING, MP_FRIENDSLOT, GetResString(IDS_FRIENDSLOT), _T("FRIENDSLOT")); ClientMenu.AppendMenu(MF_STRING | (GetItemCount() > 0 ? MF_ENABLED : MF_GRAYED), MP_FIND, GetResString(IDS_FIND), _T("Search")); ClientMenu.EnableMenuItem(MP_FRIENDSLOT, (cur_friend)?MF_ENABLED : MF_GRAYED); ClientMenu.CheckMenuItem(MP_FRIENDSLOT, (cur_friend && cur_friend->GetFriendSlot()) ? MF_CHECKED : MF_UNCHECKED); // MORPH START - Modified by Commander, Friendlinks [emulEspaa] - added by zz_fly ClientMenu.AppendMenu(MF_SEPARATOR); ClientMenu.AppendMenu(MF_STRING | (theApp.IsEd2kFriendLinkInClipboard() ? MF_ENABLED : MF_GRAYED), MP_PASTE, GetResString(IDS_PASTE), _T("PASTELINK")); ClientMenu.AppendMenu(MF_STRING | (cur_friend ? MF_ENABLED : MF_GRAYED), MP_GETFRIENDED2KLINK, GetResString(IDS_GETFRIENDED2KLINK), _T("ED2KLINK")); ClientMenu.AppendMenu(MF_STRING | (cur_friend ? MF_ENABLED : MF_GRAYED), MP_GETHTMLFRIENDED2KLINK, GetResString(IDS_GETHTMLFRIENDED2KLINK), _T("ED2KLINK")); // MORPH END - Modified by Commander, Friendlinks [emulEspaa] // - show requested files (sivka/Xman) ClientMenu.AppendMenu(MF_SEPARATOR); ClientMenu.AppendMenu(MF_STRING | (cur_friend && cur_friend->GetLinkedClient() ? MF_ENABLED : MF_GRAYED),MP_LIST_REQUESTED_FILES, GetResString(IDS_LISTREQUESTED), _T("FILEREQUESTED")); //Xman end GetPopupMenuPos(*this, point); ClientMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); VERIFY( ClientMenu.DestroyMenu() ); // XP Style Menu [Xanatos] - Stulle }
void CFeedIcoItemListCtrl::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { // TODO: 在此处添加消息处理程序代码 CTitleMenu menuRSS; menuRSS.CreatePopupMenu(); menuRSS.AppendMenu(MF_STRING,MP_OPEN,GetResString(IDS_OPEN),_T("OPEN")); menuRSS.AppendMenu(MF_STRING,MP_OPENFOLDER, GetResString(IDS_OPENFOLDER), _T("OPENFOLDER")); //menuRSS.AppendMenu(MF_STRING|MF_SEPARATOR); menuRSS.AppendMenu(MF_STRING,MP_DOWNLOAD_ALL, GetResString(IDS_RSSBTN_ALLDL), _T("RESUME"));//下载所有 menuRSS.AppendMenu(MF_STRING, MP_RESUME, GetResString(IDS_DOWNLOAD), _T("RESUME")); menuRSS.AppendMenu(MF_STRING, MP_PAUSE, GetResString(IDS_PAUSE), _T("PAUSE")); menuRSS.AppendMenu(MF_STRING,MP_CANCEL, GetResString(IDS_DELETE_FILE), _T("DELETE")); //menuRSS.AppendMenu(MF_STRING|MF_SEPARATOR); menuRSS.AppendMenu(MF_STRING,MP_REFRESH, GetResString(IDS_SV_UPDATE), NULL ); menuRSS.AppendMenu(MF_STRING,MP_OPTIONS, GetResString(IDS_RW_RSS_CONFIG), NULL ); //menuRSS.AppendMenu(MF_STRING, MP_STOP, GetResString(IDS_DL_STOP), _T("STOP")); menuRSS.EnableMenuItem(MP_OPEN, MF_GRAYED); menuRSS.EnableMenuItem(MP_OPENFOLDER, MF_GRAYED); menuRSS.EnableMenuItem(MP_DOWNLOAD_ALL, MF_GRAYED); menuRSS.EnableMenuItem(MP_RESUME, MF_GRAYED); menuRSS.EnableMenuItem(MP_PAUSE, MF_GRAYED); menuRSS.EnableMenuItem(MP_CANCEL, MF_GRAYED); menuRSS.EnableMenuItem(MP_REFRESH, MF_GRAYED); menuRSS.EnableMenuItem(MP_OPTIONS, MF_GRAYED); //menuRSS.EnableMenuItem(MP_STOP, MF_GRAYED); UpdateMenuState(menuRSS); m_pMenuXP = new CMenuXP(); m_pMenuXP->AddMenu(&menuRSS, TRUE); menuRSS.TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x, point.y, this); menuRSS.DestroyMenu(); delete m_pMenuXP; m_pMenuXP = NULL; }
void CRichEditCtrlX::OnContextMenu(CWnd* /*pWnd*/, CPoint point) { if (point.x != -1 || point.y != -1) { CRect rcClient; GetClientRect(&rcClient); ClientToScreen(&rcClient); if (!rcClient.PtInRect(point)) { Default(); return; } } long iSelStart, iSelEnd; GetSel(iSelStart, iSelEnd); int iTextLen = GetWindowTextLength(); // Context menu of standard edit control // // Undo // ---- // Cut // Copy // Paste // Delete // ------ // Select All bool bReadOnly = (GetStyle() & ES_READONLY)!=0; // ==> XP Style Menu [Xanatos] - Stulle /* CMenu menu; menu.CreatePopupMenu(); if (!bReadOnly){ menu.AppendMenu(MF_STRING, MP_UNDO, GetResString(IDS_UNDO)); menu.AppendMenu(MF_SEPARATOR); } if (!bReadOnly) menu.AppendMenu(MF_STRING, MP_CUT, GetResString(IDS_CUT)); menu.AppendMenu(MF_STRING, MP_COPYSELECTED, GetResString(IDS_COPY)); if (!bReadOnly){ menu.AppendMenu(MF_STRING, MP_PASTE, GetResString(IDS_PASTE)); menu.AppendMenu(MF_STRING, MP_REMOVESELECTED, GetResString(IDS_DELETESELECTED)); } menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, MP_SELECTALL, GetResString(IDS_SELECTALL)); */ CTitleMenu menu; menu.CreatePopupMenu(); menu.AddMenuTitle(GetResString(IDS_LOGENTRY)); if (!bReadOnly){ menu.AppendMenu(MF_STRING, MP_UNDO, GetResString(IDS_UNDO), _T("UNDO")); menu.AppendMenu(MF_SEPARATOR); } if (!bReadOnly) menu.AppendMenu(MF_STRING, MP_CUT, GetResString(IDS_CUT), _T("CUT")); menu.AppendMenu(MF_STRING, MP_COPYSELECTED, GetResString(IDS_COPY), _T("COPY")); if (!bReadOnly){ menu.AppendMenu(MF_STRING, MP_PASTE, GetResString(IDS_PASTE), _T("PASTE")); menu.AppendMenu(MF_STRING, MP_REMOVESELECTED, GetResString(IDS_DELETESELECTED), _T("DELETE")); } menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, MP_SELECTALL, GetResString(IDS_SELECTALL), _T("SEARCHFILETYPE_DOCUMENT")); // <== XP Style Menu [Xanatos] - Stulle menu.EnableMenuItem(MP_UNDO, CanUndo() ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(MP_CUT, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(MP_COPYSELECTED, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(MP_PASTE, CanPaste() ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(MP_REMOVESELECTED, iSelEnd > iSelStart ? MF_ENABLED : MF_GRAYED); menu.EnableMenuItem(MP_SELECTALL, iTextLen > 0 ? MF_ENABLED : MF_GRAYED); if (point.x == -1 && point.y == -1) { point.x = 16; point.y = 32; ClientToScreen(&point); } // Cheap workaround for the "Text cursor is showing while context menu is open" glitch. It could be solved properly // with the RE's COM interface, but because the according messages are not routed with a unique control ID, it's not // really useable (e.g. if there are more RE controls in one window). Would to envelope each RE window to get a unique ID.. m_bForceArrowCursor = true; menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); m_bForceArrowCursor = false; VERIFY( menu.DestroyMenu() ); // XP Style Menu [Xanatos] - Stulle }
void CIrcChannelTabCtrl::OnContextMenu(CWnd*, CPoint point) { int iCurTab = GetTabUnderMouse(point); if (iCurTab < 2) { return; } TCITEM item; item.mask = TCIF_PARAM; GetItem(iCurTab, &item); Channel* pChan = FindChannelByName(((Channel*)item.lParam)->m_sName); if( !pChan ) { return; } CTitleMenu menuChat; menuChat.CreatePopupMenu(); menuChat.AddMenuTitle(GetResString(IDS_IRC)+_T(" : ")+pChan->m_sName); menuChat.AppendMenu(MF_STRING, Irc_Close, GetResString(IDS_FD_CLOSE)); if (iCurTab < 2) // no 'Close' for status log and channel list menuChat.EnableMenuItem(Irc_Close, MF_GRAYED); int iCurIndex = 0; int iLength = m_sChannelModeSettingsTypeA.GetLength(); CString sMode; for( int iIndex = 0; iIndex < iLength; iIndex++) { sMode = m_sChannelModeSettingsTypeA.Mid(iIndex,1); if( pChan->m_sModesA.Find(sMode) == -1 ) { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex, _T("ModeA Set +") + sMode + _T(" ( Not Supported Yet )") ); menuChat.EnableMenuItem(Irc_ChanCommands+iCurIndex, MF_GRAYED); } else { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex+50, _T("ModeA Set -") + sMode + _T(" ( Not Supported Yet )") ); menuChat.EnableMenuItem(Irc_ChanCommands+iCurIndex+50, MF_GRAYED); } iCurIndex++; } iLength = m_sChannelModeSettingsTypeB.GetLength(); for( int iIndex = 0; iIndex < iLength; iIndex++) { sMode = m_sChannelModeSettingsTypeB.Mid(iIndex,1); if( pChan->m_sModesB.Find(sMode) == -1 ) { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex, _T("ModeB Set +") + sMode + _T(" ( Not Supported Yet )") ); menuChat.EnableMenuItem(Irc_ChanCommands+iCurIndex, MF_GRAYED); } else { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex+50, _T("ModeB Set -") + sMode + _T(" ( Not Supported Yet )") ); menuChat.EnableMenuItem(Irc_ChanCommands+iCurIndex+50, MF_GRAYED); } iCurIndex++; } iLength = m_sChannelModeSettingsTypeC.GetLength(); for( int iIndex = 0; iIndex < iLength; iIndex++) { sMode = m_sChannelModeSettingsTypeC.Mid(iIndex,1); if( pChan->m_sModesC.Find(sMode) == -1 ) { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex, _T("ModeC Set +") + sMode + _T(" ( Not Supported Yet )") ); menuChat.EnableMenuItem(Irc_ChanCommands+iCurIndex, MF_GRAYED); } else { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex+50, _T("ModeC Set -") + sMode + _T(" ( Remove ") + sMode + _T(" )") ); } iCurIndex++; } iLength = m_sChannelModeSettingsTypeD.GetLength(); for( int iIndex = 0; iIndex < iLength; iIndex++) { sMode = m_sChannelModeSettingsTypeD.Mid(iIndex,1); if( pChan->m_sModesD.Find(sMode) == -1 ) { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex, _T("ModeD Set +") + sMode + _T(" ( Add ") + sMode + _T(" )") ); } else { menuChat.AppendMenu(MF_STRING, Irc_ChanCommands+iCurIndex+50, _T("ModeD Set -") + sMode + _T(" ( Remove ") + sMode + _T(" )") ); } iCurIndex++; } menuChat.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); VERIFY( menuChat.DestroyMenu() ); }