Klasse CContextMenuManager

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

CObject

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.

Zie ook

Hiërarchiegrafiek
Klassen
CWinAppEx-klasse