ViewFilter.ShowContextMenu Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
SHOWCONTEXTMENUBir bağlam menüsünü göstermek için komutu işler.
public:
virtual void ShowContextMenu(int menuId, Guid groupGuid, Microsoft::VisualStudio::OLE::Interop::IOleCommandTarget ^ target, int x, int y);
public virtual void ShowContextMenu (int menuId, Guid groupGuid, Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget target, int x, int y);
abstract member ShowContextMenu : int * Guid * Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget * int * int -> unit
override this.ShowContextMenu : int * Guid * Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget * int * int -> unit
Public Overridable Sub ShowContextMenu (menuId As Integer, groupGuid As Guid, target As IOleCommandTarget, x As Integer, y As Integer)
Parametreler
- menuId
- Int32
'ndaki Gösterilecek menünün KIMLIĞI.
- groupGuid
- Guid
'ndaki Menü KIMLIĞININ alındığı menü grubunun GUID 'ı.
- target
- IOleCommandTarget
'ndaki IOleCommandTarget Bağlam menüsündeki komutları işlemek için kullanılan nesne.
- x
- Int32
İçinde kullanılan noktanın x değeri ShowContextMenu(UInt32, Guid, Int32, POINTS[], IOleCommandTarget) .
- y
- Int32
İçinde kullanılan noktanın y değeri ShowContextMenu(UInt32, Guid, Int32, POINTS[], IOleCommandTarget) .
Örnekler
Temel ViewFilter sınıfın bu yöntemi nasıl uyguladığı aşağıda verilmiştir.
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;
}
}
}
Açıklamalar
Bu yöntem, Geçerli görünümdeki bir bağlam menüsünü işlemek için çağırılır. Bu, kendi bağlam menüsünü görüntülemek veya var olan menüyü değiştirmek ve göstermek için bir fırsat sağlar.
Taban yöntemi, menuID IDM_VS_CTXT_CODEWIN groupGuid guidSHLMainMenu target IOleCommandTarget sınıfında uygulanan arabiriminden,, ve bir ViewFilter ile çağrılır. Taban yöntemi, makroların kaydedilip kaydedilmediğini belirler ve ardından bağlam menüsünü gösterir.