Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - anfeli96

#1
Hola, tengo un problema con un código de interfaz gráfica que estoy creando en el cual no he podido crear paginas hijas o limpiar la pantalla para poner unas nuevas opciones, por favor alguien podría decirme como hacerlo gracias. Este es mi código:


Código (cpp) [Seleccionar]
#include <windows.h>
#include <sstream>

using namespace std;
/* La función ProcedimientoVentana() es necesaria porque es la
  encargada de recibir los eventos (movimientos del ratón,
  tecla, clics a un botón, etc). En este caso, solo monitorea
  el momento el que el usuario decide cerrar la ventana para
  descargar la aplicación de memoria                           */
 
HWND textbox;  
HWND Etiqueta;
HWND hCTexto;
void ventana_principal(HWND);
void ventana_registroNuevo(HWND);
void ventana_nueva(HWND hwnd);
//void boton1;
 
LRESULT CALLBACK ProcedimientoVentana(HWND hwnd, UINT mensaje,
                                     WPARAM wParam, LPARAM lParam)
                                     
{
   switch (mensaje)
   {
       
      case WM_DESTROY:{  //salir de la aplicacion
                      //MessageBox(hwnd, "¡Adiós mundo cruel!", "Cerrando...", MB_ICONERROR | MB_OK);
                      PostQuitMessage (0);//Manda WM_QUIT a la cola de mensajes que hará
                                           //que el programa salga del bucle de mensajes              
                       return 0;
                    break;
                      }
     /*case WM_COMAND:{
                     switch(wParam){
                     
                      case
                     
 }
     
     
               break;
                }*/
     
     case WM_CREATE:
                       {
                        ventana_principal(hwnd);  
                       }
                   
   case WM_COMMAND: //Llamadas a funciones de cada boton
   {
   switch(LOWORD(wParam))
   {
    case 2:
{
system ("cls");
 
 ventana_registroNuevo(  hwnd);
 break;
    }
       case 3:
{
//ventana_nueva(hwnd);
     //MessageBox(hwnd,"elemento","ESTA ES LA FUNCION RESTA",MB_OK);//CAJA DE TEXTO TITULO DE LA VENTANA E INTRUCCION DENTRO
 break;
    }
    case 4:
{

     MessageBox(hwnd,"elemento","ESTA ES LA FUNCION RESTA",MB_OK);//CAJA DE TEXTO TITULO DE LA VENTANA E INTRUCCION DENTRO
 break;
    }
    case 5:
{
ShowWindow(hwnd, SW_SHOWDEFAULT);
     MessageBox(hwnd,"elemento","Eborro pantallaA",MB_OK);//CAJA DE TEXTO TITULO DE LA VENTANA E INTRUCCION DENTRO
 break;
    }
    case 6: //salir de la aplicacion
{
     //MessageBox(hwnd, "¡Adiós !", "Cerrando...", MB_ICONERROR | MB_OK);
                      PostQuitMessage (0);//Manda WM_QUIT a la cola de mensajes que hará
                                           //que el programa salga del bucle de mensajes              
                       return 0;
    }
   
   }


   }
   /*case WM_LBUTTONUP:
                       {
                         int xPos = LOWORD(lParam);
                         int yPos = HIWORD(lParam);

                        ostringstream os;
                        os << "Hizo clic con el botón izquierdo";

                        if (wParam == MK_CONTROL)
                        os << " mientras oprimía la tecla CONTROL";
                        else if (wParam == MK_SHIFT)
                        os << " mientras oprimía la tecla SHIFT";
                        os << "\n\nCoordenadas: " << xPos << ", " << yPos;

        MessageBox(hwnd, os.str().c_str(), "Clic!", MB_ICONINFORMATION | MB_OK);
        break;
     }*/
             
   }
   return DefWindowProc (hwnd, mensaje, wParam, lParam);
}



/* Esta cadena se ocupa para la clase de ventana y la función
  CreateWindowEx() se refieran a un mismo nombre */
char szNombreAplicacion[] = "Ejercicio2";

int WINAPI WinMain(HINSTANCE hInstancia, HINSTANCE hInstanciaPrev,
                  LPSTR lpLineaCmd, int nEstadoVentana)
{
   //Los 4 pasos para crear una ventana...
   //1. Establecer los 12 campos de la "clase de ventana"
   WNDCLASSEX ventana;

   ventana.cbSize        = sizeof(WNDCLASSEX);
   ventana.style         = CS_HREDRAW | CS_VREDRAW;
   ventana.lpfnWndProc   = ProcedimientoVentana; //recibe y maneja los eventos de la ventana como clics movimientos cierre de ventana etc. con punteros
   ventana.cbClsExtra    = 0;
   ventana.cbWndExtra    = 0;
   ventana.hInstance     = hInstancia;
   ventana.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
   ventana.hCursor       = LoadCursor (NULL, IDC_ARROW);
   ventana.hbrBackground =  (HBRUSH) (COLOR_WINDOWTEXT+8);//CreateSolidBrush( RGB(0xa0, 0x60, 0xf8) );
   ventana.lpszMenuName  = NULL;
   ventana.lpszClassName = szNombreAplicacion;//nombre de la clase de ventana
   ventana.hIconSm       = LoadIcon (NULL, IDI_APPLICATION);

   //2. Dar de alta en el sistema a la "clase de ventana"
   if( !RegisterClassEx(&ventana) )
   {
     MessageBox(NULL,
                "No fue posible dar de alta a la ventana, abortando ejecución",
                "¡Error!", MB_ICONEXCLAMATION | MB_OK);
     return FALSE;
   }

   //3. Crear la ventana en base a la "clase de ventana" anteriormente registrada
   HWND hwnd;
   hwnd = CreateWindowEx(
          1,                      //dwExEstilo
          szNombreAplicacion,     //Nombre de clase de la ventana a la que pertenece
          "Tienda de videos",  //Título de la ventana
         //variables que permiten editar intefaz con usiario habilitando o desabilitando botones
  WS_OVERLAPPED |
     WS_CAPTION |
 WS_SYSMENU ,   //poner | despues de cada opcion y coma al final
  //WS_THICKFRAME |
   // WS_MINIMIZEBOX  |
    //WS_MAXIMIZEBOX

 
  //WS_OVERLAPPEDWINDOW,    //Tipo de ventana es igual a dwEstilo
          CW_USEDEFAULT,          //Posición de la ventana en pantalla en "x"
          CW_USEDEFAULT,          //Posición de la ventana en pantalla en "y"
          500,                    //Ancho
          450,                    //Alto
          HWND_DESKTOP,
          NULL,
          hInstancia,
          NULL);
         

  if(hwnd == NULL)
  {
     MessageBox(NULL, "Error al crear la ventana, abortando ejecución",
                "¡Error!", MB_ICONEXCLAMATION | MB_OK);
     return FALSE;
  }

   //4. Mostrar la ventana en pantalla
   ShowWindow(hwnd, SW_SHOWDEFAULT);

   //Necesario para manipular los mensajes o eventos de la ventana
   MSG mensaje;
   while(GetMessage(&mensaje, 0, 0, 0) > 0)  //bucle de mensajes para cola de mensajes entrantes
   {
    TranslateMessage(&mensaje);
       DispatchMessage(&mensaje);
   }

   return mensaje.wParam;
}

void ventana_principal(HWND hwnd)//se crea ventana principal
{
//MessageBox(hwnd, "Se creó la ventana", "Ejemplo",MB_ICONINFORMATION | MB_OK);
                         
Etiqueta = CreateWindowEx(0, "STATIC", "MENU PRINCIPAL",
          WS_CHILD | WS_VISIBLE,
          180,//posicion en x
          200,//posicion en y
          150,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);
 
 /*textbox= CreateWindow("edit",  
         " Menu principal", //nombre de la ventana
           WS_BORDER | WS_CHILD|
           WS_VISIBLE,
          120,//posicion en x
          180,//posicion en y
          115,//ancho
          20,//alto
          hwnd,
          NULL,NULL,NULL);*/
                                       
   CreateWindow("BUTTON",
                "Registro Nuevo",
                WS_VISIBLE//VIsIBILIDAD DEL OBJETO
                |WS_CHILD|
        WS_BORDER, //MARGEN AL TEXTO
        90, //x
        240,//y
        130,//ancho
        30,//alto
        hwnd,
        (HMENU)2,NULL,NULL
        );
  CreateWindow("BUTTON",
               "Buscar pelicula",
                WS_VISIBLE//VIsIBILIDAD DEL OBJETO
                |WS_CHILD| WS_BORDER,
                240, //x
                240,//y
                130,//ancho
                30,//alto
                hwnd,
               (HMENU)3,NULL,NULL
              );
 CreateWindow("BUTTON",
              "Editar Registro",
              WS_VISIBLE//VIsIBILIDAD DEL OBJETO
             |WS_CHILD| WS_BORDER,
              90, //x
              290,//y
              130,//ancho
              30,//alto
              hwnd,
             (HMENU)4,NULL,NULL
             );
  CreateWindow("BUTTON",
               "Eliminar Registro",
               WS_VISIBLE//VIsIBILIDAD DEL OBJETO
              |WS_CHILD| WS_BORDER,
               240, //x
               290,//y
               130,//ancho
               30,//alto
               hwnd,
              (HMENU)5,NULL,NULL
             );
  CreateWindow("BUTTON",//boton salir
               "Salir",
               WS_VISIBLE//VIsIBILIDAD DEL OBJETO
              |WS_CHILD| WS_BORDER,
               180, //x
               340,//y
               110,//ancho
               30,//alto
               hwnd,
              (HMENU)6,NULL,NULL
               );            
                       
}

void ventana_registroNuevo(HWND hwnd)//se crea ventana para un registro nuevo
{
//MessageBox(hwnd, "Se creó la ventana", "Ejemplo",MB_ICONINFORMATION | MB_OK);


                         
Etiqueta = CreateWindowEx(0, "STATIC", "REGISTRO NUEVO",
          WS_CHILD | WS_VISIBLE,
          170,//posicion en x
          40,//posicion en y
          150,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);

Etiqueta = CreateWindowEx(0, "STATIC", "NOMBRE",
          WS_CHILD | WS_VISIBLE,
          40,//posicion en x
          80,//posicion en y
          70,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);

hCTexto = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
                               WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL,
                               120,
   80,
270,
25,
hwnd,
NULL, NULL, NULL);

Etiqueta = CreateWindowEx(0, "STATIC", "DIRECTOR",
          WS_CHILD | WS_VISIBLE,
          40,//posicion en x
          120,//posicion en y
          150,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);

Etiqueta = CreateWindowEx(0, "STATIC", "FECHA DE LANZAMIENTO",
          WS_CHILD | WS_VISIBLE,
          40,//posicion en x
          160,//posicion en y
          150,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);

Etiqueta = CreateWindowEx(0, "STATIC", "PROTAGONISTA",
          WS_CHILD | WS_VISIBLE,
          40,//posicion en x
          200,//posicion en y
          150,//ancho
          30,//alto
              hwnd,
      NULL, 0,0
);  
 /*textbox= CreateWindow("edit",  
         " Menu principal", //nombre de la ventana
           WS_BORDER | WS_CHILD|
           WS_VISIBLE,
          120,//posicion en x
          180,//posicion en y
          115,//ancho
          20,//alto
          hwnd,
          NULL,NULL,NULL);*/
                                       
  CreateWindow("BUTTON",//boton salir
               "GUARDAR",
               WS_VISIBLE//VIsIBILIDAD DEL OBJETO
              |WS_CHILD| WS_BORDER,
               120, //x
               340,//y
               110,//ancho
               30,//alto
               hwnd,
              (HMENU)7,NULL,NULL
               );            
                       
}


/*void ventana_nueva(HWND hwnd)
{
LRESULT CALLBACK ProcedimientoVentana(HWND hwnd, UINT mensaje,
                                     WPARAM wParam, LPARAM lParam)
     {
     
      CreateWindow("BUTTON",//boton salir
               "GUARDAR",
               WS_VISIBLE//VIsIBILIDAD DEL OBJETO
              |WS_CHILD| WS_BORDER,
               120, //x
               340,//y
               110,//ancho
               30,//alto
               hwnd,
              (HMENU)7,NULL,NULL
               );            
 }                                

 
}*/