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
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 CContextMenuManager
bu 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 CContextMenuManager
kaldı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.