CSnapInItemImpl::UpdateMenuState
Rufen Sie diese Funktion auf, um ein Menüelement zu ändern, bevor es in das Kontextmenü des Snap-Inobjekts eingefügt wird.
void UpdateMenuState(
UINT id,
LPTSTR pBuf,
UINT *flags
);
Parameter
id
[in] Die ID des Menüelements festgelegt werden.pBuf
[in] Ein Zeiger auf die Zeichenfolge, damit das Menüelement aktualisiert werden kann.flags
[in] gibt die neuen Zustandsflags an. Diese kann eine Kombination der folgenden Flags sein:MF_POPUP gibt an, dass dieses ein Untermenü innerhalb des Kontextmenüs ist. Menüelemente, Einfügemarken und weitere Untermenüs werden diesem Untermenü mit seinem lCommandID als ihre IInsertionPointID hinzugefügt werden.
MF_BITMAP und MF_OWNERDRAW diese Flags sind nicht zulässig und werden einen Rückgabewert von E_INVALIDARG führen.
MF_SEPARATOR wird eine horizontale Trennlinie. Nur IContextMenuProvider ist zulässig, um Menüelemente mit MF_SEPARATOR hinzuzufügen fest.
MF_CHECKED platziert ein Häkchen neben dem Menüelement.
MF_DISABLED deaktiviert das Menüelement, sodass die nicht ausgewählt werden, aber das Flag blendet es nicht ab.
MF_ENABLED aktiviert das Menüelement, sodass die ausgewählt und es aus dem abgeblendeten Zustand zurücksetzen.
MF_GRAYED deaktiviert das Menüelement und blendet es ab, sodass die nicht ausgewählt werden.
MF_MENUBARBREAK funktioniert genauso wie das MF_MENUBREAK-Flag für eine Menüleiste. Ein Dropdownmenü, ein Untermenü oder ein Kontextmenü wird die neue Spalte aus der alten Spalte durch eine vertikale Linie getrennt.
MF_MENUBREAK gibt das Element auf einer neuen Zeile (für eine Menüleiste) oder einer neuen Spalte (für ein Dropdownmenü, ein Untermenü oder ein Kontextmenü) ohne trennende Spalten.
MF_UNCHECKED platziert kein Häkchen neben dem Element (Standard).
Die folgenden Gruppen von Flags können nicht zusammen verwendet werden:
MF_DISABLED, MF_ENABLED und MF_GRAYED.
MF_MENUBARBREAK und MF_MENUBREAK.
MF_CHECKED und MF_UNCHECKED.
Anforderungen
Header: atlsnap.h