Condividi tramite


Metodo ViewFilter.ShowContextMenu (Int32, Guid, IOleCommandTarget)

gestisce SHOWCONTEXTMENU comando per visualizzare un menu di scelta rapida.

Spazio dei nomi:  Microsoft.VisualStudio.Package
Assembly:  Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)

Sintassi

'Dichiarazione
Public Overridable Sub ShowContextMenu ( _
    menuId As Integer, _
    groupGuid As Guid, _
    target As IOleCommandTarget _
)
public virtual void ShowContextMenu(
    int menuId,
    Guid groupGuid,
    IOleCommandTarget target
)

Parametri

  • menuId
    Tipo: System.Int32
    [in] ID del menu da visualizzare.
  • groupGuid
    Tipo: System.Guid
    [in] Il GUID del gruppo di menu dal menu ID viene preso.

Note

Questo metodo viene chiamato per gestire un menu di scelta rapida nella visualizzazione corrente.Ciò consente di visualizzare per contenere il menu di scelta rapida o modificare il menu esistente e per visualizzarla.

Il metodo di base viene chiamato con un oggetto menuID di IDM_VS_CTXT_CODEWIN, a groupGuid di guidSHLMainMenue target il IOleCommandTarget interfaccia implementata in ViewFilter classe.Il metodo di base determina se le macro non vengono registrande e verrà visualizzato il menu di scelta rapida.

Esempi

Di seguito è riportato come base ViewFilter la classe implementa questo metodo.

using System;
using Microsoft.VisualStudio.OLE.Interop;
using Microsoft.VisualStudio.Shell;

namespace Microsoft.VisualStudio.Package
{
    [CLSCompliant(false)]
    [System.Runtime.InteropServices.ComVisible(true)]
    public class ViewFilter :
        IVsTextViewFilter,
        IVsTextViewEvents,
        IOleCommandTarget,
        IDisposable
    {
        public virtual void ShowContextMenu(int menuId,
                                            Guid groupGuid,
                                            IOleCommandTarget target)
        {
            IVsUIShell uiShell = this.service.GetService(typeof(SVsUIShell)) as IVsUIShell;
            // disable context menu while recording macros.
            if (uiShell != null && !this.service.IsMacroRecordingOn())
            {
                System.Drawing.Point pt = System.Windows.Forms.Cursor.Position;
                POINTS[] pnts = new POINTS[1];
                pnts[0].x = (short)pt.X;
                pnts[0].y = (short)pt.Y;
                int hr = uiShell.ShowContextMenu(0, ref groupGuid, menuId, pnts, target);
                if (hr < 0)
                {
                    Debug.Assert(false, "uiShell.ShowContextMenu returned " + hr);
                }
            }
            uiShell = null;
        }
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

ViewFilter Classe

Overload ShowContextMenu

Spazio dei nomi Microsoft.VisualStudio.Package