domingo, 13 de octubre de 2013

Libreria Console.h v1.0 C++

Hola amig@s esta vez les traigo algo distinto que solo subir código de programas. En esta ocasión quiero compartir con ustedes un conjunto de funciones que he recopilado y otras que de alguna forma he escrito a mi conveniencia y decidí crear una librería estática pero esto no quiere decir que solo subiré el .h y el .lib y que ustedes tengan que linkear la librería para poder utilizar las funciones contenidas en dicha librería sino que pondré 3 diferentes formas de descarga la primera sera descargar todo el proyecto que por el momento esta en VS2010 express; la segunda el .lib con sus respectivos archivos fuentes y la tercera forma son únicamente los archivos fuentes.

Archivos Contenidos:

- CONSOLE.h : contiene todos los prototipos de las funciones de la librería.

- CONSOLE.cpp : contiene todas las definiciones de las funciones.

- Keyboard.h : contiene las definiciones de los códigos de algunas teclas. En la próxima versión espero poder completado esta cabecera ya que solo resta incluir las teclas especiales (alt,ctrl,f1,etc), también símbolos entre otras.

- testLIB.cpp : contiene un pequeño ejemplo de como utilizar el mouse en consola y del teclado.

Funciones:


void initConsole( void );//iniciamos los manejadores de entrada y salida de la consola 
void Color( int );//Cambiamos el color de la fuente 
void OcultaCursor( void );//Ocultamos el cursor
void gotoxy( int , int );//Posicionamos el cursor en las cordenadas x y
void clearToColor( int );//Borramos la consola por un color de 0 a 15 (0 = Negro, 15 = Blanco Brillante)
void textOut(int, int, char*, int );//Mostramos texto en las cordenada x y 
void ErrorExit ( char*, char* );//Si ocurre un error Mostramos un mensaje y salimos de la aplicacion
void drawRect( int[2], int[2], int );//Dibuja un un rectangulo del color que querramos
void drawRect( int[2], int[2], char*, int );//Dibuja un un rectangulo del color que querramos y le enviamos el caracter que queremos de muestre  
void drawFillRect( int[2], int[2], int );//Dibuja un un rectangulo relleno del color que querramos
void drawFillRect( int[2], int[2], char*, int );//Dibuja un un rectangulo relleno del color que querramos y le enviamos el caracter que queremos de muestre
void drawLineH( int[2], int, int );//Dibuja una linea horizontal del color que querramos
void drawLineH( int[2], int, char*, int );//Dibuja una linea horizontal del color y caracter que querramos
void drawLineV( int, int[2], int );//Dibuja una linea vertical del color que querramos
void drawLineV( int, int[2], char*, int );//Dibuja una linea vertical del color y caracter que querramos
COORD CoordMouse( void );//obtiene las coordenadas del mouse
void readConsole( void );//leemos los eventos que estan ocurriendo en la consola
bool keypressed( void );//vemos si se ha presionado una tecla
int readKey( void );//leemos el codigo de la tecla presionada
bool dobleClick( void );//vemos si se ha hecho doble click
int click( void );//vemos si se ha hecho click izq retorna 1 y si es derch retorna 2



Capturas:








Codigo:


#include
#include"CONSOLE.h"
using namespace std; 
int main(){
	int x[]={3,15},y[]={3,20},x2[]={20,32},y2[]={3,20};
	int f=0;
	COORD cr;
	/**/textOut(10,0,"Dibujando rectangulos",6);
	drawRect(x,y,7);
	drawRect(x2,y2,"*",9);
	Sleep(3000);
	clearToColor(1);
	textOut(10,0,"Dibujando rectangulos rellenos",6);
	drawFillRect(x,y,7);
	drawFillRect(x2,y2,"*",9);
	Sleep(3000);
	clearToColor(1);
	textOut(10,0,"Dibujando Lineas Horizontales",6);
	drawLineH(x,3,9);
	drawLineH(x2,3,"M",7);
	Sleep(3000);
	clearToColor(1);
	textOut(10,0,"Dibujando Lineas Verticales",6);
	drawLineV(3,y,9);
	drawLineV(6,y,"N",8);
	Sleep(2000);
	clearToColor(1);
	textOut(10,10,"Uso del mouse y teclado",6);
	Sleep(4000);
	clearToColor(1);
	fflush(stdin);
	fflush(stdout);
	/*Libera la vieja consola y comienza con una nueva ya 
	que por el momento hay conflicto la funcion clearToColor() con el uso del mouse dentro
	de la consola*/
	FreeConsole();
	AllocConsole();
	initConsole();
	do{
		Color(7);
		readConsole();
		cr=CoordMouse();
		gotoxy(1,0);cout<<"x: "<<(int)cr.X<<"Y: "<<(int)cr.Y;
		gotoxy(1,1);cout<<"tecla: "<<(char)f;
		textOut(1,2,"Para salir presione enter",8);
		
		if(click() == 1){
			cr=CoordMouse();
			gotoxy(cr.X,cr.Y);cout<<"CLICK IZQ";
		}else
			if(click() == 2){
				cr=CoordMouse();
				gotoxy(cr.X,cr.Y);cout<<"CLICK DER";
			}
		/* Reporta si se dio un doble click */
		if (dobleClick()){
			cr=CoordMouse();
			gotoxy(cr.X,cr.Y);cout<<"DOBLE CLICK ";
		}

		
		if(keypressed())
			f=readKey();
		Sleep(60);
	}while(f!=KEY_ENTER);
	ErrorExit("Saliendo del programa","TEST");
	return 0;
}



Descarga:

- Proyecto VS2010.

- Librería estática mas fuentes.

- Archivos Fuentes.