Eshwar Reddy Ответов: 1

Я хочу обновить свой элемент подменю, как проверено, когда пароль введен правильно в MFC.


если введенный пользователем пароль верен,то пункт подменю должен быть автоматически обновлен галочкой. Так что, пожалуйста, помогите мне в этом.

Что я уже пробовал:

UINT CheckMenuItem(UINT m_nAllowEditing, _ID_EDIT_ALLOWEDITING | MF_CHECKED);

enhzflep

Правильно, а что произошло, когда вы использовали CheckMenuItem в соответствии с документацией?
CMenu:: CheckMenuItem

1 Ответов

Рейтинг:
12

Jochen Arndt

CheckMenuItem это CMenu функция класса. Поэтому вам нужен указатель вашего меню.

Если этот пункт находится внутри подменю вашего главного меню, вы можете использовать обработку команд MFC в вашем CDocument вместо этого производный класс:

ON_UPDATE_COMMAND_UI(ID_OF_THE_MENU_ITEM, OnUpdateAllowEditing)

void CMyDoc::OnUpdateAllowEditing(CCmdUI *pCmdUI)
{
    //pCmdUI->Enable(m_nAllowEdtining);
    pCmdUI->SetCheck(m_nAllowEdtining);
}

Это предпочтительный метод, потому что вам не нужно извлекать указатель на главное меню, которое может быть разных типов (CMenu или CMFCMenuBar).

Если элемент является частью динамически создаваемого меню (например, всплывающего или контекстного меню), вы, вероятно, где-то сохранили указатель на это меню. Тогда называть GetSubMenu(0) чтобы получить указатель на подменю, которое затем можно использовать для вызова CheckMenuItem().