Desactivar item en menú principal

16/01/2004 - 15:57 por Demon | Informe spam
Hola a todos!

Estoy desarrollando una aplicación SDI con varias vistas. En una de ellas me
gustaría poder desactivar varios items del menú principal, concretamente las
opciones Nuevo y Abrir del menú Archivos. He intentado desde la clase
MainFrm y he konseguido desactivar el menú Archivos completo, pero no es lo
ke buskaba. Lo he intentado kon el siguiente kódigo:

menu=this->GetMenu();
submenu=menu->GetSubMenu(0);
result=submenu->EnableMenuItem(0,MF_GRAYED | MF_BYPOSITION);

pero nada, la opción sigue activa. Alguna sugerencia?

Gracias por anticipado!
 

Leer las respuestas

#1 Sergio
16/01/2004 - 17:42 | Informe spam
en el .h

afx_msg void OnUpdateFileNew(CCmdUI* pCmdUI);
afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
afx_msg void OnUpdateFileSaveAs(CCmdUI* pCmdUI);

en el .cpp

BEGIN_MESSAGE_MAP(CEventerView, CFormView)

ON_UPDATE_COMMAND_UI(ID_FILE_NEW,OnUpdateFileNew)
ON_UPDATE_COMMAND_UI(ID_FILE_OPEN,OnUpdateFileOpen)
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE,OnUpdateFileSave)
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_AS,OnUpdateFileSaveAs)
END_MESSAGE_MAP()

void CEventerView::OnUpdateFileNew(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}

void CEventerView::OnUpdateFileOpen(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}

void CEventerView::OnUpdateFileSave(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}

void CEventerView::OnUpdateFileSaveAs(CCmdUI* pCmdUI)
{
pCmdUI->Enable(FALSE);
}


Espero que sea lo que pides
Si escribes el código tal que asi nunca vas a tener la opción de usar los
botones, y me imagino que eso no es lo que buscas
asi que te recomiendo que te hagas una variable miembro del tipo BOOL, y que
la pongas a TRUE en el constructor de la clase, y cuando
te interese la le das el valor FALSE, y no te tienes que preocupar de nada
mas

Preguntas similares