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.
- target
Tipo: Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget
[in] O IOleCommandTarget o objeto que está lidar com os comandos no menu de contexto.
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
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.