Tengo un menú con todo tipo de elementos de menú, como lo haría normalmente. Cada MenuItem (botón) tiene un título y me gustaría cambiar ese título en tiempo de ejecución. En un botón normal que no es realmente un problema, simplemente llamo al GetDlgItem(ID)->SetWindowText(CString);
Cambiar el título de MenuItem en tiempo de ejecución
Sin embargo, no puedo hacer eso en los elementos del menú ya que no puedo asignar identificaciones a ninguno de ellos. El campo de Id. En el editor de Propiedades en realidad dice "ID no puede ser editado".
Entonces, ¿cómo puedo cambiar el texto de los elementos del menú en el tiempo de ejecución?
EDIT: He intentado utilizar el CMenu :: ModifyMenu sin embargo no he tenido éxito. No sé cómo especificar el botón (elemento) para cambiar. Además, tengo dudas sobre la forma en que paso el CString como argumento.
Este es mi (fallido) intento:
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);
Esta (la llamada al método ModifyMenu) genera un error de depuración afirmación. Por favor no, no sé qué nIDNewItem.
Gracias por su respuesta. Me he tropezado con CMenu :: ModifyMenu antes, sin embargo, no logré cambiar el título. Por favor mira mi pregunta editada! ¡Gracias! –