Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Het CContextMenuManager object beheert snelmenu's, ook wel contextmenu's genoemd.
Syntaxis
class CContextMenuManager : public CObject
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CContextMenuManager::CContextMenuManager | Maakt een CContextMenuManager object. |
CContextMenuManager::~CContextMenuManager |
Destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CContextMenuManager::AddMenu | Hiermee voegt u een nieuw snelmenu toe. |
| CContextMenuManager::GetMenuById | Retourneert een ingang naar het menu dat is gekoppeld aan de opgegeven resource-id. |
| CContextMenuManager::GetMenuByName | Retourneert een ingang naar het menu dat overeenkomt met de opgegeven menunaam. |
| CContextMenuManager::GetMenuNames | Retourneert een lijst met menunamen. |
| CContextMenuManager::LoadState | Hiermee worden snelmenu's geladen die zijn opgeslagen in het Windows-register. |
| CContextMenuManager::ResetState | Hiermee worden de snelmenu's uit de contextmenubeheer gewist. |
| CContextMenuManager::SaveState | Hiermee worden snelmenu's opgeslagen in het Windows-register. |
| CContextMenuManager::SetDontCloseActiveMenu | Hiermee bepaalt u of het CContextMenuManager actieve snelmenu wordt gesloten wanneer er een nieuw snelmenu wordt weergegeven. |
| CContextMenuManager::ShowPopupMenu | Hiermee wordt het opgegeven snelmenu weergegeven. |
| CContextMenuManager::TrackPopupMenu | Hiermee wordt het opgegeven snelmenu weergegeven. Retourneert de index van de geselecteerde menuopdracht. |
Opmerkingen
CContextMenuManager beheert snelmenu's en zorgt ervoor dat ze een consistent uiterlijk hebben.
U moet geen object handmatig maken CContextMenuManager . Het framework van uw toepassing maakt het CContextMenuManager object. U moet echter CWinAppEx::InitContextMenuManager aanroepen wanneer uw toepassing wordt geïnitialiseerd. Nadat u de contextbeheer hebt geïnitialiseerd, gebruikt u de methode CWinAppEx::GetContextMenuManager om een aanwijzer te verkrijgen naar de contextbeheerder voor uw toepassing.
U kunt tijdens runtime snelmenu's maken door aan te roepen AddMenu. Als u het menu wilt weergeven zonder eerst gebruikersinvoer te ontvangen, belt ShowPopupMenuu.
TrackPopupMenu wordt gebruikt wanneer u een menu wilt maken en wacht op gebruikersinvoer.
TrackPopupMenu retourneert de index van de geselecteerde opdracht of 0 als de gebruiker is afgesloten zonder iets te selecteren.
De CContextMenuManager kan ook de status ervan opslaan en laden in het Windows-register.
Example
In het volgende voorbeeld ziet u hoe u een menu aan een CContextMenuManager object toevoegt en hoe u het actieve snelmenu niet sluit wanneer het CContextMenuManager object een nieuw snelmenu weergeeft. Dit codefragment maakt deel uit van het voorbeeld aangepaste pagina's.
// The GetContextMenuManager method is inherited from the CWinAppEx class.
GetContextMenuManager()->AddMenu(_T("My menu"), IDR_CONTEXT_MENU);
GetContextMenuManager()->SetDontCloseActiveMenu(true);
Overnamehiërarchie
CContextMenuManager
Requirements
Koptekst: afxcontextmenumanager.h
CContextMenuManager::AddMenu
Hiermee voegt u een nieuw snelmenu toe aan de CContextMenuManager.
BOOL AddMenu(
UINT uiMenuNameResId,
UINT uiMenuResId);
BOOL AddMenu(
LPCTSTR lpszName,
UINT uiMenuResId);
Parameterwaarden
uiMenuNameResId
[in] Een resource-id voor een tekenreeks die de naam voor het nieuwe menu bevat.
uiMenuResId
[in] De resource-id van het menu.
lpszName
[in] Een tekenreeks die de naam voor het nieuwe menu bevat.
Retourwaarde
Niet-nul als de methode is geslaagd; 0 als de methode mislukt.
Opmerkingen
Deze methode mislukt als uiMenuResId ongeldig is of als er al een ander menu met dezelfde naam in het CContextMenuManagermenu staat.
CContextMenuManager::CContextMenuManager
Maakt een CContextMenuManager-object .
CContextMenuManager();
Opmerkingen
In de meeste gevallen moet u geen handmatige CContextMenuManager gegevens maken. Het framework van uw toepassing maakt het CContextMenuManager object. U moet CWinAppEx::InitContextMenuManager aanroepen tijdens de initialisatie van uw toepassing. Als u een aanwijzer naar de contextbeheerder wilt krijgen, roept u CWinAppEx::GetContextMenuManager aan.
CContextMenuManager::GetMenuById
Hiermee wordt een ingang geretourneerd naar het menu dat is gekoppeld aan een bepaalde resource-id.
HMENU GetMenuById(UINT nMenuResId) const;
Parameterwaarden
nMenuResId
[in] De resource-id voor het menu.
Retourwaarde
Een ingang naar het bijbehorende menu of NULL als het menu niet wordt gevonden.
CContextMenuManager::GetMenuByName
Retourneert een ingang naar een specifiek menu.
HMENU GetMenuByName(
LPCTSTR lpszName,
UINT* puiOrigResID = NULL) const;
Parameterwaarden
lpszName
[in] Een tekenreeks die de naam van het menu bevat dat moet worden opgehaald.
puiOrigResID
[uit] Een aanwijzer naar een UINT. Deze parameter bevat de resource-id van het opgegeven menu, indien gevonden.
Retourwaarde
Een ingang naar het menu dat overeenkomt met de naam die is opgegeven door lpszName. NULL als er geen menu met de naam lpszName is.
Opmerkingen
Als deze methode een menu vindt dat overeenkomt met lpszName, GetMenuByName slaat u de resource-id van het menu op in de parameter puiOrigResID.
CContextMenuManager::GetMenuNames
Retourneert de lijst met menunamen die zijn toegevoegd aan de CContextMenuManager.
void GetMenuNames(CStringList& listOfNames) const;
Parameterwaarden
listOfNames
[uit] Een verwijzing naar een CStringList-parameter . Met deze methode wordt de lijst met menunamen naar deze parameter geschreven.
CContextMenuManager::LoadState
Laadt informatie die is gekoppeld aan de klasse CContextMenuManager uit het Windows-register.
virtual BOOL LoadState(LPCTSTR lpszProfileName = NULL);
Parameterwaarden
lpszProfileName
[in] Een tekenreeks die het relatieve pad van een registersleutel bevat.
Retourwaarde
Niet-nul als de methode is geslaagd; anders 0.
Opmerkingen
De parameter lpszProfileName is niet het absolute pad voor een registervermelding. Het is een relatief pad dat wordt toegevoegd aan het einde van de standaardregistersleutel voor uw toepassing. Als u de standaardregistersleutel wilt ophalen of instellen, gebruikt u respectievelijk de methoden CWinAppEx::GetRegistryBase en CWinAppEx::SetRegistryBase .
Gebruik de methode CContextMenuManager::SaveState om de snelmenu's op te slaan in het register.
CContextMenuManager::ResetState
Hiermee wist u alle items uit de snelmenu's die zijn gekoppeld aan de klasse CContextMenuManager.
virtual BOOL ResetState();
Retourwaarde
WAAR als de methode is geslaagd; ONWAAR als er een fout optreedt.
Opmerkingen
Met deze methode worden de pop-upmenu's gewist en verwijderd uit de CContextMenuManager.
CContextMenuManager::SaveState
Hiermee wordt informatie opgeslagen die is gekoppeld aan de klasse CContextMenuManager in het Windows-register.
virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL);
Parameterwaarden
lpszProfileName
[in] Een tekenreeks die het relatieve pad van een registersleutel bevat.
Retourwaarde
Niet-nul als de methode is geslaagd; anders 0.
Opmerkingen
De parameter lpszProfileName is niet het absolute pad voor een registervermelding. Het is een relatief pad dat wordt toegevoegd aan het einde van de standaardregistersleutel voor uw toepassing. Als u de standaardregistersleutel wilt ophalen of instellen, gebruikt u respectievelijk de methoden CWinAppEx::GetRegistryBase en CWinAppEx::SetRegistryBase .
Gebruik de methode CContextMenuManager::LoadState om de snelmenu's uit het register te laden.
CContextMenuManager::SetDontCloseActiveMenu
Hiermee bepaalt u of de CContextMenuManager het actieve snelmenu sluit wanneer er een nieuw snelmenu wordt weergegeven.
void SetDontCloseActiveMenu (BOOL bSet = TRUE);
Parameterwaarden
bSet
[in] Een Booleaanse parameter waarmee wordt bepaald of het actieve snelmenu moet worden gesloten. Een waarde van TRUE geeft aan dat het actieve snelmenu niet is gesloten. FALSE geeft aan dat het actieve snelmenu is gesloten.
Opmerkingen
CContextMenuManager Standaard wordt het actieve pop-upmenu gesloten.
CContextMenuManager::ShowPopupMenu
Hiermee wordt het opgegeven snelmenu weergegeven.
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);
Parameterwaarden
uiMenuResId
[in] De resource-id van het menu dat door deze methode wordt weergegeven.
x
[in] De horizontale verschuiving voor het snelmenu in clientcoördinaten.
y
[in] De verticale verschuiving voor het snelmenu in clientcoördinaten
pWndOwner
[in] Een aanwijzer naar het bovenliggende venster van het snelmenu.
bOwnMessage
[in] Een Booleaanse parameter die aangeeft hoe berichten worden gerouteerd. Als bOwnMessage ONWAAR is, wordt standaard MFC-routering gebruikt. Anders ontvangt pWndOwner de berichten.
menu hmenu
[in] De greep van het menu dat met deze methode wordt weergegeven.
bAutoDestroy
[in] Een Booleaanse parameter die aangeeft of het menu automatisch wordt vernietigd.
bRightAlign
[in] Een Booleaanse parameter die aangeeft hoe de menu-items worden uitgelijnd. Als bRightAlign TRUE is, wordt het menu rechts uitgelijnd voor de leesrichting van rechts naar links.
Retourwaarde
De eerste overbelasting van de methode retourneert niet-nul als de methode het menu met succes weergeeft; anders 0. De tweede methode overbelasting retourneert een aanwijzer naar CMFCPopupMenu als het snelmenu correct wordt weergegeven; anders NULL.
Opmerkingen
Deze methode lijkt op de methode CContextMenuManager::TrackPopupMenu waarin beide methoden een snelmenu weergeven.
TrackPopupMenu Retourneert echter de index van de geselecteerde menuopdracht.
Als de parameter bAutoDestroy FALSE is, moet u de overgenomen DestroyMenu methode handmatig aanroepen om geheugenresources vrij te geven. De standaard implementatie van maakt geen gebruik van ShowPopupMenu de parameter bAutoDestroy. Het wordt verstrekt voor toekomstig gebruik of voor aangepaste klassen die zijn afgeleid van de CContextMenuManager klasse.
CContextMenuManager::TrackPopupMenu
Geeft het opgegeven snelmenu weer en retourneert de index van de geselecteerde snelmenuopdracht.
virtual UINT TrackPopupMenu(
HMENU hmenuPopup,
int x,
int y,
CWnd* pWndOwner,
BOOL bRightAlign = FALSE);
Parameterwaarden
menu hmenu
[in] De greep van het snelmenu dat met deze methode wordt weergegeven.
x
[in] De horizontale verschuiving voor het snelmenu in clientcoördinaten.
y
[in] De verticale verschuiving voor het snelmenu in clientcoördinaten.
pWndOwner
[in] Een aanwijzer naar het bovenliggende venster van het snelmenu.
bRightAlign
[in] Een Booleaanse parameter die aangeeft hoe menu-items worden uitgelijnd. Als bRightAlign TRUE is, wordt het menu rechts uitgelijnd voor de leesrichting van rechts naar links. Als bRightAlign ONWAAR is, wordt het menu links uitgelijnd voor de leesrichting van links naar rechts.
Retourwaarde
De menuopdracht-id van de opdracht die de gebruiker kiest; 0 als de gebruiker het snelmenu sluit zonder een menuopdracht te selecteren.
Opmerkingen
Deze methode fungeert als een modale aanroep om een snelmenu weer te geven. De toepassing gaat pas verder met de volgende regel in code als de gebruiker het snelmenu sluit of een opdracht selecteert. Een alternatieve methode die u kunt gebruiken om een snelmenu weer te geven, is CContextMenuManager::ShowPopupMenu. Deze methode is geen modale aanroep en retourneert niet de id van de geselecteerde opdracht.