Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Menus

Estas en el tema de Menus en el foro de C/C++ en Foros del Web. Amigos Foreros, tengo que hacer un menú desplegable por ejemplo que tenga un menú archivo y que de ese los submenús salga abrir, cerrar, etc. ...
  #1 (permalink)  
Antiguo 27/10/2006, 11:36
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 18 años, 9 meses
Puntos: 1
Menus

Amigos Foreros, tengo que hacer un menú desplegable por ejemplo que tenga un menú archivo y que de ese los submenús salga abrir, cerrar, etc.

Solo que necesito es desplegar el menú en pantalla y que se pueda manejar desde el teclado.

Muchisimas gracias de antemano, por cualquier ayuda.

Atte.,
  #2 (permalink)  
Antiguo 27/10/2006, 14:03
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
¿Y eso que tiene que ver con C o C++?
  #3 (permalink)  
Antiguo 27/10/2006, 14:05
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Talvez ha de querer romperse la cabeza haciendolo en C/C++
  #4 (permalink)  
Antiguo 27/10/2006, 14:42
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por Developer9 Ver Mensaje
Talvez ha de querer romperse la cabeza haciendolo en C/C++
Qué gracioso eres cuando quieres. :)

No hace falta mucha cabeza para hacer algo así en un sistema de ventanas como Win32, GNOME o KDE con C/C++.

Y con algún IDE como Visual Studio, no hace falta ni codificarlo. ¿No lo sabías?
  #5 (permalink)  
Antiguo 27/10/2006, 14:48
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
lo se lo se... aunque quisiera ver como se lo haría en BOrlandC
  #6 (permalink)  
Antiguo 27/10/2006, 14:52
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Cita:
Iniciado por MaxExtreme Ver Mensaje
¿Y eso que tiene que ver con C o C++?
Pues que en la escuela le pidieron que lo hiciera en C/C++
  #7 (permalink)  
Antiguo 27/10/2006, 15:16
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Cita:
Pues que en la escuela le pidieron que lo hiciera en C/C++
Jajajajaja.
Pues ya nos presumio de su muy interesante tarea, ahora que la intente hacer y que nos diga en que tiene duda.

Saludos
  #8 (permalink)  
Antiguo 27/10/2006, 15:36
 
Fecha de Ingreso: octubre-2004
Mensajes: 3
Antigüedad: 19 años, 6 meses
Puntos: 0
la web del programador - juegos , alli sale snake , donde trabaja con menus
  #9 (permalink)  
Antiguo 27/10/2006, 15:36
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 18 años, 9 meses
Puntos: 1
Jajajaja
Ok, Gracias, pues no se como empezar a realizar un menú, lo esperaba hacer con listas doblemente enlazadas pero no se como visualizar el menú....

jijijiji
  #10 (permalink)  
Antiguo 27/10/2006, 15:56
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por darkasecas Ver Mensaje
Pues que en la escuela le pidieron que lo hiciera en C/C++
Sigue teniendo un 0% que ver con C/C++.
  #11 (permalink)  
Antiguo 27/10/2006, 15:57
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por Host_91 Ver Mensaje
Jajajaja
Ok, Gracias, pues no se como empezar a realizar un menú, lo esperaba hacer con listas doblemente enlazadas pero no se como visualizar el menú....

jijijiji
Y dale, no te enteras... Que nadie te puede ayudar tal como lo planteas, puesto que C/C++ no tienen siquiera librería para sistemas de ventanas, ni librería gráfica 2D ni 3D ni nada.
  #12 (permalink)  
Antiguo 27/10/2006, 16:13
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Cita:
Iniciado por MaxExtreme Ver Mensaje
Sigue teniendo un 0% que ver con C/C++.
Entonces con que tiene que ver?
  #13 (permalink)  
Antiguo 27/10/2006, 19:50
Avatar de bzero  
Fecha de Ingreso: marzo-2006
Mensajes: 10
Antigüedad: 18 años, 1 mes
Puntos: 0
Derrepente se refuere a q se despiegen osea la opcion 1 y se borra el menu y aparece otro a eso debe referirse yo q empiezo..no e visto ni han mencionado q se pueda hacer q algo asi..

humilde...opinion.. ;)
  #14 (permalink)  
Antiguo 28/10/2006, 00:37
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por darkasecas Ver Mensaje
Entonces con que tiene que ver?
A ver si nos enteramos: C/C++ no tiene librería relacionadas con gráficos o sistemas de ventanas.

Por lo que preguntar cómo hacer un "menú" con C/C++ sin especificar nada más no tiene sentido alguno.

(ironía) Al menos que lo quiera hacer en ASCII, claro...

Código:
#####################
# Archivo # Edición #
#####################
| Abrir       |
| Cerrar      |_______________________
| Guardar ->  | Guardar               |
--------------| Guardar como...       |
              | Guardar encriptado... |
  #15 (permalink)  
Antiguo 28/10/2006, 01:22
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Host_91, el problema es, que C/C++ como lenguaje no incluyen librerias para el menejo de Graficos y ventana, como lenguajes que tienen sus propias librerias(Java, VB, etc).

por tanto para poder hacer este tipo de aplicaciones, tenemos que utilizar una libreria, hay un buen de librerias para el manejor de ventanas esto incluye el manejode menus.

si estas en Windows, puedes usar:
la API de Windows.
la VCL de Builder C++.
la MFC de Visual C++.
wxWindows,
Qt,
incluso GTK etc.

si si tu profesor te pide una aplicacion grafica lo logico es que ya conoscan una de estas librerias.
si no, pues tienes que elegir una de ellas o preguntar a tu profesor como tienes que crear estos menus.

Saludos.
  #16 (permalink)  
Antiguo 30/10/2006, 08:12
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 18 años, 9 meses
Puntos: 1
Pregunta

Gracias por todas las respuestas!!!

Pero es un ejercicio que quiero realizarlo con listas doblemente enlazadas no tiene que Abrir un archivo, o copiar y pegar, etc., o algo por el estilo si no que solo que con las flechas del teclado para arriba, abajo, derecha e izquierda se movilizen el menu, es como MaxExtreme lo visualiza......

Mil disculpas por no ser tan especifico....


Cita:
Iniciado por MaxExtreme Ver Mensaje
A ver si nos enteramos: C/C++ no tiene librería relacionadas con gráficos o sistemas de ventanas.

Por lo que preguntar cómo hacer un "menú" con C/C++ sin especificar nada más no tiene sentido alguno.

(ironía) Al menos que lo quiera hacer en ASCII, claro...

Código:
#####################
# Archivo # Edición #
#####################
| Abrir       |
| Cerrar      |_______________________
| Guardar ->  | Guardar               |
--------------| Guardar como...       |
              | Guardar encriptado... |
  #17 (permalink)  
Antiguo 30/10/2006, 10:02
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Pues para crear un menú de ese estilo una lista enlazada puede representar cada elemento, con unos datos como:

Código:
struct elemento {
    char titulo[40];
    void (* funcion)();
    struct elemento * submenu;
    struct elemento * siguiente;
}
Simplemente vas rellenándolo con el título, la funcion a la que quieras llamar cuando sea pulsado, NULL y el puntero al siguiente elemento. Cuando quieras un submenú en alguna de las opciones, cambias el NULL de "submenu" por la direccion del primer elemento de otro sub menu, y fuera.

Después de acabar el programa es muy gracioso y útil (para saber si funciona) hacer un menú cíclico haciendo que "submenu" apunte a la cabeza del mismo menu en el que estás. Algo así como que "Guardar ->" te volviese a sacar el menú Archivo.
  #18 (permalink)  
Antiguo 30/10/2006, 10:31
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 18 años, 9 meses
Puntos: 1
Gracias, MaxExtreme, voy a intentarlo de esa manera....

Y disculpa, no tienes alguna idea que como pueda hacer el efecto de cuando abrar el menu archivo abra sus opciones, yo estaba pensando realizarlo con las feclas del teclado (arriba, abajo izquierda, derecha) y utilizado un gotoxy para simular la posición de cursor pero no se como borrar sus opciones cuando quiera ir al menu de edición (por ejemplo)....

Te muestro mi codigo que he realizado.
Código:
int main()
{
    unsigned char tecla_pulsada;
    gotoxy(1,1);
    printf("ARCHIVO");
    tecla_pulsada=identificarTecla(getch());
    signal(SIGINT, SIG_IGN);
     while (tecla_pulsada != ESC)
    {
        tecla_pulsada=identificarTecla(getch());

        switch (tecla_pulsada)
        {
            case ARRIBA:
              	gotoxy(1,2);
             	printf("ABRIR");
            	gotoxy(1,3);
             	printf("CERRAR");
            	gotoxy(1,4);
             	printf("SALIR");
               fflush(stdout);
               li_abajo--;
               gotoxy(1,li_abajo);
               break;

				case ABAJO:
              	gotoxy(1,2);
             	printf("ABRIR");
            	gotoxy(1,3);
             	printf("CERRAR");
            	gotoxy(1,4);
             	printf("SALIR");
               fflush(stdout);
               li_abajo++;
               if (li_abajo > 4) {
               	li_abajo=2;
               }
               gotoxy(1,li_abajo);
               break;
/*
				case ABAJO:  printf("FLECHA ABAJO \n"); fflush(stdout); break;
            case DERECHA: printf("FLECHA DERECHA \n"); fflush(stdout); break;
            case IZQUIERDA: printf("FLECHA IZQUIERDA \n"); fflush(stdout); break;
*/
            case ESC: break;
            default: break;
        }
    }
    EXIT_SUCCESS;
}



Te agradezco de ante mano....
  #19 (permalink)  
Antiguo 30/10/2006, 10:32
 
Fecha de Ingreso: julio-2005
Mensajes: 51
Antigüedad: 18 años, 9 meses
Puntos: 1
De acuerdo

Gracias, MaxExtreme, voy a intentarlo de esa manera....

Y disculpa, no tienes alguna idea que como pueda hacer el efecto de cuando abrar el menu archivo abra sus opciones, yo estaba pensando realizarlo con las feclas del teclado (arriba, abajo izquierda, derecha) y utilizado un gotoxy para simular la posición de cursor pero no se como borrar sus opciones cuando quiera ir al menu de edición (por ejemplo)....

Te muestro mi codigo que he realizado.
Código:
int main()
{
    unsigned char tecla_pulsada;
    gotoxy(1,1);
    printf("ARCHIVO");
    tecla_pulsada=identificarTecla(getch());
    signal(SIGINT, SIG_IGN);
     while (tecla_pulsada != ESC)
    {
        tecla_pulsada=identificarTecla(getch());

        switch (tecla_pulsada)
        {
            case ARRIBA:
              	gotoxy(1,2);
             	printf("ABRIR");
            	gotoxy(1,3);
             	printf("CERRAR");
            	gotoxy(1,4);
             	printf("SALIR");
               fflush(stdout);
               li_abajo--;
               gotoxy(1,li_abajo);
               break;

				case ABAJO:
              	gotoxy(1,2);
             	printf("ABRIR");
            	gotoxy(1,3);
             	printf("CERRAR");
            	gotoxy(1,4);
             	printf("SALIR");
               fflush(stdout);
               li_abajo++;
               if (li_abajo > 4) {
               	li_abajo=2;
               }
               gotoxy(1,li_abajo);
               break;
/*
				case ABAJO:  printf("FLECHA ABAJO \n"); fflush(stdout); break;
            case DERECHA: printf("FLECHA DERECHA \n"); fflush(stdout); break;
            case IZQUIERDA: printf("FLECHA IZQUIERDA \n"); fflush(stdout); break;
*/
            case ESC: break;
            default: break;
        }
    }
    EXIT_SUCCESS;
}

Te agradezco de ante mano....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:46.