SoloCodigo
		Programación General => C/C++ => Mensaje iniciado por: oscar francisco alvarez d en Viernes 15 de Marzo de 2002, 18:43
		
			
			- 
				necesito hacer un programita que tenga 4 ventanas especie menu. en toda la pantalla,
 necesito que el mouse cuando lo coloque en la zona caliente osea (en cada ventana)se ilumine y con un clic izquierdo lo seleccione, con 2 clic´s habra el programa de cada ventana.
- 
				Haber espero que este codigo te ayude o al menos te de una idea de como solucionar tu problema
 
 
 /****************************************************************************
 
 Nombre: MOUSE.H
 Utilidad: Programaci¢n del rat¢n en aplicaciones D.O.S.
 Autor: Sergio Pacho
 Fecha: 14 de diciembre de 1997
 E-mail: http://www.cworld.nu (http://www.cworld.nu)
 
 Este c¢digo est  pensado para que cualquiera pueda incluirlo en sus aplica-
 ciones.
 
 Lo £nico que te pido es que no modifiques los créditos, y que se lo pases a
 todos tus amigos, colegas...
 Tambi‚n puedes decir que lo has conseguido en:
 http://www.cworld.nu (http://www.cworld.nu)
 
 Hay m s funciones de las que aparecen aqu¡, pero estas son las m s b sicas,
 y las que utilizar s el 99% de las veces.
 
 ****************************************************************************/
 
 /* LOS INCLUDES */
 
 #include <stdlib.h>
 #include <dos.h>
 
 
 /* LAS FUNCIONES */
 
 int mtest(void);
 void mver(void);
 void mocultar(void);
 int mxpos(int);
 int mypos(int);
 void msituar(int, int, int);
 int mclick(void);
 void mlimit(int, int, int, int, int);
 
 
 /* LAS VARIABLES */
 
 union REGS reg;
 
 
 /*************************************************/
 /* LA FUNCION mtest                              */
 /* Esta funci¢n sirve para testear el rat¢n.     */
 /* No es necesario enviar ning£n par metro.      */
 /* Retorna: 0 => no hay rat¢n instalado.         */
 /*          n => el n£mero de botones del rat¢n. */
 /*************************************************/
 
 int mtest(void)
 {
 reg.x.ax = 0x0;
 int86(0x33, ®, ®);
 if (reg.x.ax > 0) return reg.x.bx; /* n£mero de botones */
 else return 0;
 }
 
 
 /*************************************************/
 /* LA FUNCION mver                               */
 /* Muestra el puntero del rat¢n.                 */
 /* No es necesario enviar ning£n par metro.      */
 /* No retorna ning£n valor.                      */
 /*************************************************/
 
 void mver(void)
 {
 reg.x.ax = 0x1;
 int86(0x33, ®, ®);
 }
 
 
 /*************************************************/
 /* LA FUNCION mocultar                           */
 /* Oculta el puntero del rat¢n.                  */
 /* No es necesario enviar ning£n par metro.      */
 /* No retorna ning£n valor.                      */
 /*************************************************/
 
 void mocultar(void)
 {
 reg.x.ax = 0x2;
 int86(0x33, ®, ®);
 }
 
 
 /*************************************************/
 /* LA FUNCION mxpos                              */
 /* Nos dice la coordenada X del rat¢n.           */
 /* Es necesario enviar un par metro.             */
 /*    1 => modo gr fico.                         */
 /*    8 => modo texto.                           */
 /* Retorna la posici¢n horizontal del rat¢n.     */
 /*************************************************/
 
 int mxpos(int modo)
 {
 reg.x.ax = 0x3;
 int86(0x33, ®, ®);
 return reg.x.cx/modo;
 }
 
 
 /*************************************************/
 /* LA FUNCION mypos                              */
 /* Nos dice la coordenada Y del rat¢n.           */
 /* Es necesario enviar un par metro.             */
 /*    1 => modo gr fico.                         */
 /*    8 => modo texto.                           */
 /* Retorna la posici¢n vertical del rat¢n.       */
 /*************************************************/
 
 int mypos(int modo)
 {
 reg.x.ax = 0x3;
 int86(0x33, ®, ®);
 return reg.x.dx/modo;
 }
 
 
 /*************************************************/
 /* LA FUNCION msituar                            */
 /* Situamos el rat¢n en las coordenadas deseadas */
 /* Es necesario enviar tres par metros.          */
 /*    modo => 1 => modo gr fico.                 */
 /*            8 => modo texto.                   */
 /*    x => posici¢n horizontal.                  */
 /*    y => posici¢n vertical.                    */
 /* No retorna ning£n valor.                      */
 /*************************************************/
 
 void msituar(int modo, int x, int y)
 {
 reg.x.ax = 0x4;
 reg.x.cx = x*modo;
 reg.x.dx = y*modo;
 int86(0x33, ®, ®);
 }
 
 
 /*************************************************/
 /* LA FUNCION mclick                             */
 /* Nos dice si hay alg£n bot¢n presionado.       */
 /* No es necesario enviar ning£n par metro.      */
 /* Retorna: 0 => ning£n bot¢n presionado.        */
 /*          1 => bot¢n izquierdo presionado.     */
 /*          2 => bot¢n derecho presionado.       */
 /*************************************************/
 
 int mclick(void)
 {
 int r = 0;
 reg.x.ax = 0x5;
 reg.x.bx = 0;
 int86(0x33, ®, ®);
 if ((reg.x.ax) & 1) r = 1;
 else if ((reg.x.ax>>1) & 1) r = 2;
 return r;
 }
 
 
 /*************************************************/
 /* LA FUNCION mlimit                             */
 /* Limitamos el espacio de movilidad del rat¢n.  */
 /* Es necesario enviar cinco par metros.         */
 /*    modo => 1 => modo gr fico.                 */
 /*            8 => modo texto.                   */
 /*    x1 => l¡mite arriba.                       */
 /*    y1 => l¡mite izquierda.                    */
 /*    x2 => l¡mite abajo.                        */
 /*    y2 => l¡mite derecha.                      */
 /* No retorna ning£n valor.                      */
 /*************************************************/
 
 void mlimit(int modo, int x1, int y1, int x2, int y2)
 {
 reg.x.ax = 0x7;
 reg.x.cx = x1*modo;
 reg.x.dx = x2*modo;
 int86(0x33, ®, ®);
 reg.x.ax = 0x8;
 reg.x.cx = y1*modo;
 reg.x.dx = y2*modo;
 int86(0x33, ®, ®);
 }
 :P