CContextMenuManager Sınıfı
nesne, CContextMenuManager
bağlam menüleri olarak da bilinen kısayol menülerini yönetir.
class CContextMenuManager : public CObject
Veri Akışı Adı | Açıklama |
---|---|
CContextMenuManager::CContextMenuManager | Bir CContextMenuManager nesne oluşturur. |
CContextMenuManager::~CContextMenuManager |
Yıkıcı. |
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. |
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.
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);
CContextMenuManager
Üst bilgi: afxcontextmenumanager.h
CContextMenuManager'a yeni bir kısayol menüsü ekler.
BOOL AddMenu(
UINT uiMenuNameResId,
UINT uiMenuResId);
BOOL AddMenu(
LPCTSTR lpszName,
UINT uiMenuResId);
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.
Yöntem başarılı olursa sıfır olmayan; Yöntem başarısız olursa 0.
uiMenuResId geçersizse veya aynı ada sahip başka bir menü zaten içindeyse CContextMenuManager
bu yöntem başarısız olur.
CContextMenuManager nesnesi oluşturur.
CContextMenuManager();
Ç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.
Belirli bir kaynak kimliğiyle ilişkili menüye bir tanıtıcı döndürür.
HMENU GetMenuById(UINT nMenuResId) const;
nMenuResId
[in] Menünün kaynak kimliği.
İlişkili menünün tutamacı veya NULL
menü bulunamazsa.
Belirli bir menüye tanıtıcı döndürür.
HMENU GetMenuByName(
LPCTSTR lpszName,
UINT* puiOrigResID = NULL) const;
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.
Menünün lpszName tarafından belirtilen adla eşleşen tanıtıcısı. lpszName adlı bir menü yoksa NULL.
Bu yöntem lpszName ile eşleşen bir menü bulursa, GetMenuByName
menü kaynak kimliğini puiOrigResID parametresinde depolar.
CContextMenuManager'a eklenen menü adlarının listesini döndürür.
void GetMenuNames(CStringList& listOfNames) const;
listOfNames
[out] CStringList parametresine başvuru. Bu yöntem, menü adlarının listesini bu parametreye yazar.
Windows kayıt defterinden CContextMenuManager Sınıfı ile ilişkili bilgileri yükler.
virtual BOOL LoadState(LPCTSTR lpszProfileName = NULL);
lpszProfileName
[in] Kayıt defteri anahtarının göreli yolunu içeren dize.
Yöntem başarılı olursa sıfır olmayan; aksi takdirde 0.
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 Sınıfı ile ilişkili kısayol menülerindeki tüm öğeleri temizler.
virtual BOOL ResetState();
Yöntem başarılı olursa TRUE; Hata oluşursa YANLIŞ.
Bu yöntem açılır menüleri temizler ve içinden CContextMenuManager
kaldırır.
CContextMenuManager Sınıfı ile ilişkili bilgileri Windows kayıt defterine kaydeder.
virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL);
lpszProfileName
[in] Kayıt defteri anahtarının göreli yolunu içeren dize.
Yöntem başarılı olursa sıfır olmayan; aksi takdirde 0.
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'ı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);
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.
Varsayılan olarak, CContextMenuManager
etkin açılır menüyü kapatır.
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);
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.
İ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.
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.
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);
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.
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.
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.