CMenu::ModifyMenu
Změní existující položky nabídky na pozici určenou nPosition .
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
BOOL ModifyMenu(
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem,
const CBitmap* pBmp
);
Parametry
nPosition
Určuje položku nabídky, který chcete změnit. nFlags Parametru lze interpretovat nPosition následujícími způsoby:nFlags
Výklad nPosition
MF_BYCOMMAND
Určuje, že parametr poskytuje ID příkazu existující položky nabídky.Toto je výchozí, pokud ani MF_BYCOMMAND ani MF_BYPOSITION je nastavena.
MF_BYPOSITION
Určuje, že parametr dává pozice existující položku nabídky.První položka je na pozici 0.
nFlags
Určuje, jak nPosition je interpretována a poskytuje informace o změny položky nabídky.Seznam příznaků, které může nastavit naleznete AppendMenu členské funkce.nIDNewItem
Určuje ID příkazu upravenou položku nebo pokud nFlags je nastavena na MF_POPUP, popisovač nabídky (HMENU) z rozbalovací nabídky. nIDNewItem Parametr je ignorován (potřeby) nFlags je nastavena na MF_SEPARATOR.lpszNewItem
Určuje obsah nové položky nabídky. nFlags Parametru lze interpretovat lpszNewItem následujícími způsoby:nFlags
Výklad lpszNewItem
MF_OWNERDRAW
Obsahuje aplikace dodané hodnotu 32 bit, aplikace můžete spravovat další data přidružená k položce nabídky.Tato 32bitová hodnota je k dispozici aplikace při zpracování MF_MEASUREITEM a MF_DRAWITEM.
MF_STRING
Obsahuje dlouhý řetězec zakončený hodnotou null nebo na ukazatel CString .
MF_SEPARATOR
lpszNewItem Parametr je ignorován (není nutný).
pBmp
Odkazuje CBitmap objekt, který bude použit jako položky nabídky.
Vrácená hodnota
Nenulová hodnota, pokud je tato funkce úspěšná. jinak 0.
Poznámky
Aplikace určuje nový stav položky nabídky nastavením hodnot v nFlags .Tato funkce nahrazuje rozbalovací nabídky přidružené k položce nabídky, ničí se staré rozbalovací nabídky a uvolní paměť použitá v rozbalovací nabídce.
Při nIDNewItem určuje rozbalovací nabídky, stane se součástí nabídky, ve které je vložen.Pokud nabídku zničení, budou také vložené nabídky zničena.Vložené nabídky by odpojili od CMenu objektu, aby se zabránilo konfliktu.
Vždy, když je nabídka, která nachází v okně se změní (zda je zobrazen v okně), aplikace by měla zavolat CWnd::DrawMenuBar .Chcete-li změnit atributy existující položky nabídky, je mnohem rychlejší použít CheckMenuItem a EnableMenuItem funkce členů.
Příklad
Příklad pro CMenu::InsertMenu.
Požadavky
Záhlaví: afxwin.h