teclas derecha izquirda, arriba y abajo

Iniciado por mrkcc, 4 Junio 2010, 22:21 PM

0 Miembros y 1 Visitante están viendo este tema.

mrkcc

bueno nesesito realizar  es que navege con las teclas en el consola, bueno esto es parte de mi codigo que quiero realizar, buneo si reailza parte pero solo lo hace de arriba y abajo pero tambien nesesito realizarlo de izquirda a derecha, mas que todo navegar por la consola.

//lista de menu
for (i=0;i<MaxNo_Menu_a;++i)
           {
               posicionxy(xpos,ypos[i]);
               textattr(0|col1*col2);
               cout << menu_list_a[i];
               cout << ceros;
           }

// menu activado
i=0;
ii=0;
while(1)

{
           //==================A=============
           posicionxy(xpos, ypos[i]);
           textattr(14|col1*col2);
           cout << menu_list_a[i];

       /*
       nota:   esto seria las teclas:
               72 -> UP button
               75 -> RIGHT button
               77 -> LEFT button
               80 -> DOWN button
*/
switch( parar_tecla() )//parecido getchar o getch
   {
case 72://esta funciona bien
           if(i>0)
           {
               posicionxy(xpos,ypos[i]);
               textattr(0|col1*col2);
               cout << menu_list_a[i];
               --i;
           }
           break;

case 80://esto funciona bien
           if(i< MaxNo_Menu_a-1 )
{
      posicionxy(xpos,ypos[i]);
      textattr(0|col1*col2);
               cout << menu_list_a[i];
               ++i;
           }
           break;
/*
//=======bueno el 77 y 75 es lo que no funciona========================
       case 77:
           if(i<0)
           {
               posicionxy(xxpos,yypos[i]);
               textattr(0|col1*col2);
               cout << menu_list_b[i];
               --i;
           }
           break;
       case 75:
           if(i>MaxNo_Menu_b-1 )
{
      posicionxy(xxpos,yypos[i]);
      textattr(0|col1*col2);
               cout << menu_list_b[i];
               ++i;
           }
           break;
//=====================fin de prueba===============
*/
case 13:
           if(i==0)
           {
               posicionxy(1,5);cout << ":1 ";
               posicionxy(8,7);cin >> v[0];


           }
if(i==1)
{
   posicionxy(1,5);  cout << ":2 ";
   posicionxy(8,10);cin >> v[1];

           }
           if(i==2)
           {
               posicionxy(1,5);  cout << ":3 ";
               posicionxy(8,13);cin >> v[2];

           }
           if(i==3)
           {
               posicionxy(1,5);  cout << ":4 ";
               posicionxy(8,16);cin >> v[3];

           }
           if(i==4)
           {
               posicionxy(1,5);  cout << ":5 ";
               posicionxy(8,19);cin >> v[4];

           }

           break;
}
}


bueno si me puedo navegar de arriba para abajo y viceversa, pero al querer hacer lo mismo con la derecha e izquierda no se puede, que puedo hacer.


Saberuneko

Estás seguro que has asignado los valores correctos de las teclas laterales? Si mal no recuerdo, son 37 y 39.

mrkcc

bueno no creoq ue funciones eso pero en fin probe con estas y me funciono en lo correcto, lo probe en devc++ y codeblocks, visualc++, en borlan si no ya que no lo tengo instalado.
=============================================
#include <iostream>

#include <conio.h>
/*
bueno conio.h lo trae el compilador que use auque no tiene todas
las opciones de borlan, bueno solo tiene tre funciones pero esto
es lo que queremos, tambien podriasmos usar getchar. pero yo preferi
esto.
*/

using namespace std;

int main()
{

   while(1)
   {

   switch(getch())
    {
   case 72:
        cout <<"Arriba" << "\n";
    break;
    case 80:
        cout <<"Abajo" << "\n";
    break;
    case 77:
        cout <<"Derecha" << "\n";
    break;
    case 75:
        cout <<"Izquierda" << "\n";
    break;
    }
   }
}
========================================

bueno esto lo que hize al final pero hay un problema, que cuando quiero  moverme por la consola no me lo permite, pero como te digo aquneue probe con las 36 y 37 no funcionaron, lo estoy realizando en windows.

Saberuneko

Bueno, sorry, no estoy seguro... Los únicos menús que hice en mi vida sólo escroleaban arriba y abajo.  :-[