Aracılığıyla paylaş


CContextMenuManager Sınıfı

nesne, CContextMenuManager bağlam menüleri olarak da bilinen kısayol menülerini yönetir.

Sözdizimi

class CContextMenuManager : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CContextMenuManager::CContextMenuManager Bir CContextMenuManager nesne oluşturur.
CContextMenuManager::~CContextMenuManager Yıkıcı.

Genel Yöntemler

Veri Akışı Adı Açıklama
CContextMenuManager::AddMenu Yeni bir kısayol menüsü ekler.
CContextMenuManager::GetMenuById Sağlanan kaynak kimliğiyle ilişkili menüye bir tanıtıcı döndürür.
CContextMenuManager::GetMenuByName Menüye sağlanan menü adıyla eşleşen bir tanıtıcı döndürür.
CContextMenuManager::GetMenuNames Menü adlarının listesini döndürür.
CContextMenuManager::LoadState Windows kayıt defterinde depolanan kısayol menülerini yükler.
CContextMenuManager::ResetState Bağlam menüsü yöneticisinden kısayol menülerini temizler.
CContextMenuManager::SaveState Kısayol menülerini Windows kayıt defterine kaydeder.
CContextMenuManager::SetDontCloseActiveMenu Yeni bir kısayol menüsü görüntülendiğinde etkin kısayol menüsünün kapatılıp kapatılmayacağını CContextMenuManager denetler.
CContextMenuManager::ShowPopupMenu Belirtilen kısayol menüsünü görüntüler.
CContextMenuManager::TrackPopupMenu Belirtilen kısayol menüsünü görüntüler. Seçili menü komutunun dizinini döndürür.

Açıklamalar

CContextMenuManager kısayol menülerini yönetir ve tutarlı bir görünüme sahip olduklarından emin olur.

Nesneyi el ile oluşturmamalısınız CContextMenuManager . Uygulamanızın çerçevesi nesnesini oluşturur CContextMenuManager . Ancak, uygulamanız başlatıldığında CWinAppEx::InitContextMenuManager çağrısı yapmalısınız. Bağlam yöneticisini başlatdıktan sonra, uygulamanızın bağlam yöneticisine yönelik bir işaretçi elde etmek için CWinAppEx::GetContextMenuManager yöntemini kullanın.

komutunu çağırarak AddMenuçalışma zamanında kısayol menüleri oluşturabilirsiniz. Kullanıcı girişini almadan menüyü göstermek istiyorsanız çağrısı yapın ShowPopupMenu. TrackPopupMenu bir menü oluşturmak ve kullanıcı girişini beklemek istediğinizde kullanılır. TrackPopupMenu seçili komutun dizinini veya kullanıcı herhangi bir şey seçmeden çıktıysa 0 değerini döndürür.

ayrıca CContextMenuManager , durumunu kaydedebilir ve Windows kayıt defterine yükleyebilir.

Örnek

Aşağıdaki örnekte, nesneye CContextMenuManager menü ekleme ve nesne yeni bir açılır menü görüntülendiğinde CContextMenuManager etkin açılır menüyü kapatmama işlemleri gösterilmektedir. Bu kod parçacığı Özel Sayfalar örneğinin bir parçasıdır.

// The GetContextMenuManager method is inherited from the CWinAppEx class.
GetContextMenuManager()->AddMenu(_T("My menu"), IDR_CONTEXT_MENU);
GetContextMenuManager()->SetDontCloseActiveMenu(true);

Devralma Hiyerarşisi

CObject

CContextMenuManager

Gereksinimler

Üst bilgi: afxcontextmenumanager.h

CContextMenuManager::AddMenu

CContextMenuManager'a yeni bir kısayol menüsü ekler.

BOOL AddMenu(
    UINT uiMenuNameResId,
    UINT uiMenuResId);

BOOL AddMenu(
    LPCTSTR lpszName,
    UINT uiMenuResId);

Parametreler

uiMenuNameResId
[in] Yeni menünün adını içeren bir dizenin kaynak kimliği.

uiMenuResId
[in] Menü kaynak kimliği.

lpszName
[in] Yeni menünün adını içeren bir dize.

Dönüş Değeri

Yöntem başarılı olursa sıfır olmayan; Yöntem başarısız olursa 0.

Açıklamalar

uiMenuResId geçersizse veya aynı ada sahip başka bir menü zaten içindeyse CContextMenuManagerbu yöntem başarısız olur.

CContextMenuManager::CContextMenuManager

CContextMenuManager nesnesi oluşturur.

CContextMenuManager();

Açıklamalar

Çoğu durumda el ile oluşturmamalısınız CContextMenuManager . Uygulamanızın çerçevesi nesnesini oluşturur CContextMenuManager . Uygulamanızın başlatılması sırasında CWinAppEx::InitContextMenuManager çağrısı yapmalısınız. Bağlam yöneticisine bir işaretçi almak için CWinAppEx::GetContextMenuManager'ı çağırın.

CContextMenuManager::GetMenuById

Belirli bir kaynak kimliğiyle ilişkili menüye bir tanıtıcı döndürür.

HMENU GetMenuById(UINT nMenuResId) const;

Parametreler

nMenuResId
[in] Menünün kaynak kimliği.

Dönüş Değeri

İlişkili menünün tutamacı veya NULL menü bulunamazsa.

CContextMenuManager::GetMenuByName

Belirli bir menüye tanıtıcı döndürür.

HMENU GetMenuByName(
    LPCTSTR lpszName,
    UINT* puiOrigResID = NULL) const;

Parametreler

lpszName
[in] Alınacak menünün adını içeren dize.

puiOrigResID
[out] UINT işaretçisi. Bu parametre, bulunursa belirtilen menünün kaynak kimliğini içerir.

Dönüş Değeri

Menünün lpszName tarafından belirtilen adla eşleşen tanıtıcısı. lpszName adlı bir menü yoksa NULL.

Açıklamalar

Bu yöntem lpszName ile eşleşen bir menü bulursa, GetMenuByName menü kaynak kimliğini puiOrigResID parametresinde depolar.

CContextMenuManager::GetMenuNames

CContextMenuManager'a eklenen menü adlarının listesini döndürür.

void GetMenuNames(CStringList& listOfNames) const;

Parametreler

listOfNames
[out] CStringList parametresine başvuru. Bu yöntem, menü adlarının listesini bu parametreye yazar.

CContextMenuManager::LoadState

Windows kayıt defterinden CContextMenuManager Sınıfı ile ilişkili bilgileri yükler.

virtual BOOL LoadState(LPCTSTR lpszProfileName = NULL);

Parametreler

lpszProfileName
[in] Kayıt defteri anahtarının göreli yolunu içeren dize.

Dönüş Değeri

Yöntem başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

lpszProfileName parametresi, bir kayıt defteri girdisinin mutlak yolu değildir. Bu, uygulamanız için varsayılan kayıt defteri anahtarının sonuna eklenen göreli bir yoldur. Varsayılan kayıt defteri anahtarını almak veya ayarlamak için sırasıyla CWinAppEx::GetRegistryBase ve CWinAppEx::SetRegistryBase yöntemlerini kullanın.

Kısayol menülerini kayıt defterine kaydetmek için CContextMenuManager::SaveState yöntemini kullanın.

CContextMenuManager::ResetState

CContextMenuManager Sınıfı ile ilişkili kısayol menülerindeki tüm öğeleri temizler.

virtual BOOL ResetState();

Dönüş Değeri

Yöntem başarılı olursa TRUE; Hata oluşursa YANLIŞ.

Açıklamalar

Bu yöntem açılır menüleri temizler ve içinden CContextMenuManagerkaldırır.

CContextMenuManager::SaveState

CContextMenuManager Sınıfı ile ilişkili bilgileri Windows kayıt defterine kaydeder.

virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL);

Parametreler

lpszProfileName
[in] Kayıt defteri anahtarının göreli yolunu içeren dize.

Dönüş Değeri

Yöntem başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

lpszProfileName parametresi, bir kayıt defteri girdisinin mutlak yolu değildir. Bu, uygulamanız için varsayılan kayıt defteri anahtarının sonuna eklenen göreli bir yoldur. Varsayılan kayıt defteri anahtarını almak veya ayarlamak için sırasıyla CWinAppEx::GetRegistryBase ve CWinAppEx::SetRegistryBase yöntemlerini kullanın.

Kayıt defterinden kısayol menülerini yüklemek için CContextMenuManager::LoadState yöntemini kullanın.

CContextMenuManager::SetDontCloseActiveMenu

CContextMenuManager'ın yeni bir açılır menü görüntülendiğinde etkin açılır menüyü kapatıp kapatmayacağını denetler.

void SetDontCloseActiveMenu (BOOL bSet = TRUE);

Parametreler

bSet
[in] Etkin açılır menünün kapatılıp kapatılmayacağını denetleyen boole parametresi. TRUE değeri etkin açılır menünün kapatılmadığını gösterir. YANLIŞ, etkin açılır menünün kapalı olduğunu gösterir.

Açıklamalar

Varsayılan olarak, CContextMenuManager etkin açılır menüyü kapatır.

CContextMenuManager::ShowPopupMenu

Belirtilen kısayol menüsünü görüntüler.

virtual BOOL ShowPopupMenu(
    UINT uiMenuResId,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bOwnMessage = FALSE,
    BOOL bRightAlign = FALSE);

virtual CMFCPopupMenu* ShowPopupMenu(
    HMENU hmenuPopup,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bOwnMessage = FALSE,
    BOOL bAutoDestroy = TRUE,
    BOOL bRightAlign = FALSE);

Parametreler

uiMenuResId
[in] Bu yöntemin görüntüleneceği menünün kaynak kimliği.

x
[in] İstemci koordinatlarındaki kısayol menüsünün yatay uzaklığı.

y
[in] İstemci koordinatlarında kısayol menüsünün dikey uzaklığı

pWndOwner
[in] Kısayol menüsünün üst penceresinin işaretçisi.

bOwnMessage
[in] İletilerin nasıl yönlendirildiğini gösteren boole parametresi. bOwnMessage FALSE ise, standart MFC yönlendirmesi kullanılır. Aksi takdirde, pWndOwner iletileri alır.

hmenuPopup
[in] Bu yöntemin görüntüleneceği menünün tutamacı.

bAutoDestroy
[in] Menünün otomatik olarak yok edilip edilmeyeceğini gösteren boole parametresi.

bRightAlign
[in] Menü öğelerinin nasıl hizalandığını gösteren boole parametresi. bRightAlign TRUE ise, menü sağdan sola okuma sırası için sağa hizalanır.

Dönüş Değeri

İlk yöntem aşırı yüklemesi, yöntem menüyü başarıyla gösterirse sıfır olmayan bir değer döndürür; aksi takdirde 0. İkinci yöntem aşırı yüklemesi, kısayol menüsü doğru görüntülüyorsa CMFCPopupMenu işaretçisini döndürür; aksi takdirde NULL olur.

Açıklamalar

Bu yöntem CContextMenuManager::TrackPopupMenu yöntemine benzer ve her iki yöntem de bir kısayol menüsü görüntüler. Ancak, TrackPopupMenu seçili menü komutunun dizinini döndürür.

bAutoDestroy parametresi YANLIŞ ise, bellek kaynaklarını serbest bırakmak için devralınan DestroyMenu yöntemi el ile çağırmanız gerekir. varsayılan uygulaması ShowPopupMenu bAutoDestroy parametresini kullanmaz. Gelecekte kullanmak veya sınıfından CContextMenuManager türetilen özel sınıflar için sağlanır.

CContextMenuManager::TrackPopupMenu

Belirtilen kısayol menüsünü görüntüler ve seçili kısayol menüsü komutunun dizinini döndürür.

virtual UINT TrackPopupMenu(
    HMENU hmenuPopup,
    int x,
    int y,
    CWnd* pWndOwner,
    BOOL bRightAlign = FALSE);

Parametreler

hmenuPopup
[in] Bu yöntemin görüntülediği kısayol menüsünün tutamacı.

x
[in] İstemci koordinatlarındaki kısayol menüsünün yatay uzaklığı.

y
[in] İstemci koordinatlarındaki kısayol menüsünün dikey uzaklığı.

pWndOwner
[in] Kısayol menüsünün üst penceresinin işaretçisi.

bRightAlign
[in] Menü öğelerinin nasıl hizalandığını gösteren boole parametresi. bRightAlign TRUE ise, menü sağdan sola okuma sırası için sağa hizalanır. bRightAlign YANLIŞ ise, menü soldan sağa okuma sırası için sola hizalanır.

Dönüş Değeri

Kullanıcının seçtiği komutun menü komut kimliği; 0 kullanıcı bir menü komutu seçmeden kısayol menüsünü kapatırsa.

Açıklamalar

Bu yöntem, kısayol menüsünü görüntülemek için kalıcı bir çağrı işlevi görür. Kullanıcı kısayol menüsünü kapatana veya bir komut seçene kadar uygulama kodda aşağıdaki satıra devam etmeyecektir. Kısayol menüsünü görüntülemek için kullanabileceğiniz alternatif yöntem, CContextMenuManager::ShowPopupMenu yöntemidir. Bu yöntem kalıcı bir çağrı değildir ve seçili komutun kimliğini döndürmez.

Ayrıca bkz.

Hiyerarşi Grafiği
Sınıflar
CWinAppEx Sınıfı