Compartilhar via


Método ViewFilter.ShowContextMenu (Int32, Guid, IOleCommandTarget)

Lida com o SHOWCONTEXTMENU comando para mostrar um menu de contexto.

Namespace:  Microsoft.VisualStudio.Package
Assembly:  Microsoft.VisualStudio.Package.LanguageService (em Microsoft.VisualStudio.Package.LanguageService.dll)

Sintaxe

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

Parâmetros

  • menuId
    Tipo: System.Int32
    [in] A identificação do menu para mostrar.
  • groupGuid
    Tipo: System.Guid
    [in] O GUID do grupo de menu do qual a identificação de menu é tirada.

Comentários

Este método é chamado para manipular um menu de contexto no modo de exibição atual.Isso proporciona uma oportunidade para exibir seu próprio menu de contexto ou modificar o menu existente e mostrá-lo.

O método base é chamado com um menuID de IDM_VS_CTXT_CODEWIN, um groupGuid de guidSHLMainMenue um target da IOleCommandTarget interface implementada na ViewFilter classe.O método base determina se as macros não estão sendo registradas e mostra o menu de contexto.

Exemplos

Aqui está como base da ViewFilter classe implementa este método.

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

Segurança do .NET Framework

Consulte também

Referência

ViewFilter Classe

Sobrecargas ShowContextMenu

Namespace Microsoft.VisualStudio.Package