Изменить заголовок MenuItem во время выполнения

У меня есть меню со всеми видами пунктов меню, как обычно. Каждый элемент меню (кнопка) имеет заголовок, и я хотел бы изменить его во время выполнения. На обычной кнопке, что на самом деле не проблема, я просто вызываю GetDlgItem (ID) -> SetWindowText (CString);

Однако я не могу сделать это в пунктах меню, так как не могу назначить ID любому из них. В поле ID в редакторе свойств фактически написано: «ID не может быть отредактирован».

Итак, как мне изменить текст пунктов меню во время выполнения?

EDIT : Я пробовал использовать CMenu :: ModifyMenu, однако Я потерпел неудачу. Я не знаю, как указать кнопку (элемент) для изменения. Кроме того, у меня есть сомнения в правильности способа передачи CString в качестве аргумента.

Это моя (неудачная) попытка:

CString str = "Foo";
CMenu * pMenu = m_wndToolBar.GetMenu();
pMenu->ModifyMenu(1, MF_BYPOSITION | MF_STRING, 0 /*Don't know what to pass as nIDNewItem */, str);

Это (вызов метода ModifyMenu) вызывает ошибку утверждения отладки. Учтите, что я не знаю, что такое nIDNewItem.

8
задан David Božjak 22 June 2011 в 11:44
поделиться