C/Visual C - Cómo marcar 1 opción de menú...

 
Vista:

Cómo marcar 1 opción de menú...

Publicado por Luis (2 intervenciones) el 08/12/2001 10:59:52
Buenas, tengo un problemilla, he empezado a desarrollar mi proyecto fin de carrera y estoy programando en Visual C++. Al crear el menú de la aplicación, en una de las opciones hay dos posibilidades para seleccionar... y me gustaría saber para que apareciera marcada la opción seleccionada en ese momento, que debo hacer. Recogo el mensaje para cada opción... el mensaje UPDATE_COMMAND_UI y en su función de tratamiento...¿qué carajo hago para que se marque? uso SetCheck?... hago una única función para estas dos opciones o una para cada una... estoy echo un lío... AYUDA PLEASE!!!!! Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cómo marcar 1 opción de menú...

Publicado por fiero (5 intervenciones) el 08/12/2001 12:06:34
Lo mas facil es hacer una función para cada opción del menú:

void CMainFrame::OnUpdateOpcion1Menu(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck((int) ..... );
}

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cómo marcar 1 opción de menú...

Publicado por fiero (5 intervenciones) el 09/12/2001 13:59:07
Imagino que ya habrás probado para cuando escribo esto pero en SetCheck solo tienes que poner 1 si lo quieres marcar y 0 si no. O poner el nombre de alguna variable con ese valor, ya sabes.
No hace falta poner el ID de la opcio que quieres marcar ni nada de eso , ya que con el ClassWizard configuras a que función salta en cada opción al activarse el mensaje UPDATE_COMMAND_UI.
No se si sabrás como funciona este mensaje, te explico un poquillo(lo poco que sé). El menú manda este mensaje UPDATE_COMMAND_UI a la ventana marco cuando se va a redibujar, y la ventana le responde, por medio de la función que nosotros le coloquemos, cómo quiere que se dibuje, si con una marca, sin marca, etc. Es decir, en cada opción del menú a dibujar se envia un mensaje.
Tambien puedes mandar todas las opciones del menú a la misma función y entonces ver de que opcion se trata en cada momento mediante la variable m_nIndex de CCmdUI. Por ejemplo, si tienes dos opciones en un menu y quieres marcar la primera y desactivar la segunda:

void CMainFrame::OnUpdateOpciones(CCmdUI* pCmdUI)
{
if(pCmdUI->m_nIndex==0)
pCmdUI->SetCheck(1);
else
pCmdUI->Enable(0);
}

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

GRACIAS!!! RE:Cómo marcar 1 opción de menú...

Publicado por Luis (6 intervenciones) el 11/12/2001 09:20:50
Gracias fierodeval por tu ayuda, he utilizado lo siguiente que me ha ido de maravilla...
void CTfc10View::OnUpdateControladoresHctl1100(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(pCmdUI->m_nID ==m_IdElementoMenuControladores);
}

donde previamente en m_IdElementoMenuControladores, de tipo UINT, he almacenado el identificador de la opción de menú que se ha seleccionado... va bien y parece sencillo. Lo pongo por si te sirve, aunque creo que ya lo sabrias.
Un saludo.


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:GRACIAS!!! RE:Cómo marcar 1 opción de menú...

Publicado por fiero (5 intervenciones) el 11/12/2001 13:49:50
Veo que ya lo tienes hecho. Solo un apunte por si te interesa, a veces en las aplicaciones se suele utilizar la función
CCmdUI::SetRadio( BOOL bOn = TRUE ) cuando hay que seleccionar una opción de un menú. El resultado es el mismo, lo único que cambia es que se dibuja un circulo tipo radio en vez de la V.

un saludo

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar