ViewFilter.ShowContextMenu, méthode (Int32, Guid, IOleCommandTarget)
Gère la commande d'SHOWCONTEXTMENU de montrer un menu contextuel.
Espace de noms : Microsoft.VisualStudio.Package
Assembly : Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
Syntaxe
'Déclaration
Public Overridable Sub ShowContextMenu ( _
menuId As Integer, _
groupGuid As Guid, _
target As IOleCommandTarget _
)
public virtual void ShowContextMenu(
int menuId,
Guid groupGuid,
IOleCommandTarget target
)
Paramètres
- menuId
Type : System.Int32
[in] L'IDENTIFICATEUR du menu à montrer.
- groupGuid
Type : System.Guid
[in] GUID du groupe de menus à partir duquel l'IDENTIFICATEUR de menu est pris.
- target
Type : Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget
[in] l'objet d'IOleCommandTarget qui est de gérer les commandes dans le menu contextuel.
Remarques
Cette méthode est appelée pour gérer un menu contextuel dans l'affichage en cours.Cela fournit une possibilité d'afficher votre propre menu contextuel ou de modifier le menu existant et de le montrer.
La méthode de base est appelée avec menuID d'IDM_VS_CTXT_CODEWIN, groupGuid d'guidSHLMainMenu, et target de l'interface d'IOleCommandTarget implémentée dans la classe d'ViewFilter.La méthode de base détermine si des macros ne sont pas enregistrées puis montre le menu contextuel.
Exemples
Voici comment la classe d'ViewFilter de base implémente cette méthode.
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;
}
}
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.