Introducci�n Como se ya se describi� en el cap�tulo "ventanas personalizadas" el par�metro p del comando window hace que creemos una ventana de imagen. �Qu� es una ventana de imagen? Pues b�sicamente es lo mismo que una ventana personalizada normal, con la diferencia de que en �sta en vez de a�adir/borrar/modificar l�neas de texto, lo que haremos sera dibujar puntos, lineas, figuras o incluso mostrar im�genes con formato .BMP. As� pues las picture windows no son m�s que tipo especial de ventanas personalizadas, y este cap�tulo lo dedicaremos integramente a estudiar su creaci�n, manejo y posibilidades. Pasando ya a la pr�ctica, un ejemplo de c�mo crear una ventana de imagen podria ser el siguente: /window p @miventana 10 10 200 200 @miventana Estaa l�nea de c�digo har� que se cree una ventana de imagen en blanco de nombre @miventana (recuerde que las ventanas personalizadas siempre llevan en su nombre el prefijo @), en las cooridnadas x (10) y (10), de 200 pixels de largo por 200 de alto, y que adem�s use los men�s popup que le especifiquemos bajo la clausula menu @miventana en la seccion de Remotes del editor del mIRC. Hasta aqu� no hacemos m�s que repetir lo que se explic� en el cap�tulo anterior, la diferencia es que esta es una ventana de imagen y nos permitir� aplicar tratamientos y procesos gr�ficos. Una vez creada la ventana ahora lo importante, y lo que la diferencia del resto, son los comandos u modificadores que podemos emplear en ella. Con los comandos que a continuaci�n se explicaran el lector sera capaz de dibujar figuras, puntos, y lineas; poner texto en cualquier lugar, y mostrar im�genes .BMP tambien en cualquier posicion dentro de la ventana. Antes de empezar con este tema quiero que quede claro a qu� me refiero cuando, m�s adelante, em`pleando la palabra rect�ngulo. La especificaci�n del rect�ngulo son 4 n�meros que determinan la posici�n y tama�o de la ventana. Los dos primeros aluden a la posici�n en que se encontrar� su esquina superior izquierda. El primero (x) ser� la distancia en pixels desde el borde izquierdo de la pantalla, el segundo (y) es la distancia desde el borde superior. Los dos sigueinte n�meros definen el tama�o de nuestra ventana: ancho (w) y alto (h), siempre usando el pixel como unidad de medida, por lo cual las dimensiones reales depender�n del tama�o y definici�n de su monitor. Por ejemplo un rect�ngulo cuya esquina est� en las coordenadas x = 30, y = 5, y mida 100 pixels de largo por 120 de alto lo expresaremos como: 30 5 100 120. Espero que haya quedado eso claro porque es fundamental para el entendimiento de la siguiente secci�n... Comandos para la modificaci�n de Ventanas de Imagen. Estos comandos, igual que pasaba con los de las ventanas personalizadas normales se han de usar despues de haber creado la ventana, y pueden ser insertados en cualquier Alias, Popup o Remote que declaremos. /drawdot [hnri] @nombre <color> <tama�o> <x y> [x y ...] Dibuja un punto del color indicado (del 0-15) con un diametro (tama�o en pixels) y en las coordinadas x y dentro ventana de imagen. No confundir estas coordenadas x e y con las coordenadas equivalentes que usamos al crear la ventana, en este caso aluden a la posici�n en que se dibujar� el punto dentro de la misma. Corresponden a una escala en pixels que tambi�n parte de la esquina superior izquierda de la ventana creada, pero cuyos ejes son ahora el borde superior e izquierdo de la misma ( no de la pantalla ). Es decir, que si dibujamos un punto en las coordinadas x(0) y(0) tendremos un punto cuyo centro estara en la misma esquina superior izquierda de la ventana de imagen. Se pueden especificar multiples coordenadas x,y en la misma orden, esto es, si queremos dibujar varios puntos con el mismo comando. Los parametros opcionales [-hnri] sirven para lo siguiente: -h | Har� que el icono de la ventana parpadee en el momento de dibujarse el punto si se encuentra minimizada. | | | -n | Hace que la ventana no se actualice inmediatamente. Esto podria ser util si antes de dibujar el punto queremos cambiar el color del fondo o algo similar, aunque realmente eso se conseguiria mas facilmente poniendo el comando que cambiara el color de fondo antes que el que dibujara el punto asi que este parametro rara vez lo usaremos... | | | -r | Indica que el <color> esta especificado en formato RGB (Rojo,Verde,Azul). en caso de que usemos este parametro tendremos que utilizar el identificador: $rgb(rojo,verde,azul) por ejemplo: $rgb(0,200,100) | | | -i | Dibujara el punto en modo inverso (color blanco y fondo negro). |
Ejemplo: /drawdot r @miventana $rgb(255,23,45) 5 10 10 12 10 Este ejemplo dibujara 2 puntos en la ventana @miventana del color definido por el valor $rgb(255,23,45) , con un diametro de 5 pixels. /drawline [-hnri] @nombre <color> <tama�o> <x y> <x y> [x y...] Dibuja una l�nea del color <color>, que tenga un grosor de <tama�o> pixels y que vaya desde las primeras coordinadas <x y> que especifiquemos hasta las segundas <x y>. Se pueden especificar opcionalmente m�s parametros <x y> para hacer una l�nea que pase por los puntos definidos. Los par�metros [-hnri] hacen exactamente lo mismo que en el comando drawdot, y de hecho comprobaremos que a casi todos los comandos de modificacion de ventanas de imagen se les pueden aplicar estos par�metros Ejemplo: /drawline @miventana 4 10 20 0 20 100 Este ejemplo dibujar� una linea en @miventana de color rojo (4) y grosor 10 pixels, que ir� desde las coordenadas x(20) y(0) hasta x(20) y(100) . Es decir ser� una linea vertical. Dibuja un rect�ngulo del color <color> cuyo borde tenga un grosor de <grosor> pixels, cuya esquina superior izquierda se encuentre en las coordinadas <x y> especificadas, y que mida <w> pixels de largo por <h> de alto. L�gicamente si incluimos un segundo juego de par�metros [x y w h] crear� un segundo rectangulo con esas caracter�sticas. Los par�metros [-hrni] una vez m�s son los mismos que los explicados en el comando drawdot, los otros sirven para lo siguiente: -f | Una vez dibujado el rect�ngulo lo rellena con el color que hayamos especificado para el borde, si no especificamos este par�metro el rectangulo por dentro ser� del color del fondo. | | | -e | Dibuja una elipse en lugar en un rect�ngulo... �que como dibuja una elipse si lo que le estamos dando son las coordenadas de un rectangulo? Pues simplemente dibuja la elipse que cabr�a perfectamente dentro de ese rect�ngulo que especificamos con <x y w h>. | | | -c | Hace que el borde del rectangulo sea del color que le hemos especificado, pero transparente. |
Ejemplo: /drawrect fr @miventana $rgb(1,2,3) 10 30 30 200 200 Este ejemplo dibujar� un rect�ngulo de color $rgb(1,2,3) , ya que le hemos especificado el par�metro r , que estar� adem�s relleno con ese color, y su esquina superior izquierda estar� en la posici�n x(30) y(30) y medir� 200 pixels de largo por 200 de alto. /drawfill [hnris] @nombre <color1> <color2> <x y> [archivo.bmp] Rellenar� el �rea en el que est� el punto <x y> con el color <color1>. Podemos especificar que en vez de rellenar el �rea con un color se haga con una imagen BMP que tengamos. La imagen ha de ser del tama�o 8x8 pixels, si tiene cualquier otro tama�o no funcionar�. Los par�metros [-hnri] cumplen la misma funci�n que en los comandos anteriores. La funcion del par�metro <color2> depende de si especificamos o no el par�metro [-s]. Si ponemos -s el valor de <color2> indicar� el color que deber� ser sustituido por <color1>. Si no incluimos -s el valor que le demos a <color2> ser� el color ante el cual el relleno deber� parar. Este comando resulta un poco complicado de explicar, asi que lo mejor ser� que se fije en el siguiente ejemplo: Ejemplo: /drawfill @miventana 1 4 30 30 c:\imagen.bmp Este ejemplo lo que har� es que usando la imagen imagen.bmp (cuyo tama�o es de 8x8 pixels) y desde la posicion x(30) y(30) pegara multiples copias de esa imagen para rellenar esa zona, parando ante cualquier l�nea de color rojo, si hubiera alguna. /drawtext [-hnrpboc] @nombre <color1> [color2] [Tipo_letra] [Tama�o_letra] <x y [w h]> <texto> Inserta un texto del color <color> en la ventana que especifiquemos y en las coordinadas <x y>. Podemos a�adir opcionalmente la longitud y altura del texto (parametros [w h]), esto har� que si el texto que escribimos es demasiado largo y no cabe en el rect�ngulo que hemos indicado con [w h] aparezca solo el trozo que quepa. El par�metro [color2] es opcional y sirve para especificar el color del fondo del texto que escribamos. Los par�metros [Tipo letra] y [Tama�o letra] tambi�n son opcionales e indican el nombre del tipo de letra a usar (escribirlo todo junto, sin espacios) y su tama�o en puntos. [-hnr] tienen la misma funcion que en anteriores comandos. En cuanto a los otros par�metros: -p | Nos permite el uso de controles de color (ctrl + k) , negrita (ctrl + b) y subrayado (ctrl + u) dentro del texto. | | | -b | ndica que se va a especificar el par�metro [color2] como color de fondo para el texto. Si no usamos este par�metro, [color2] deber� ser omitido. | | | -o | Indica que el tipo de letra elegido debe ser en negrita. | | | -c | Indica que los par�metros opcionales [w h] van a ser especificados. |
Ejemplo: /drawtext b @miventana 4 9 MSSansSerif 14 30 40 Probando el comando drawtext Este ejemplo pondr� en pantalla la cadena de caracteres Probando el comando drawtext de color rojo (4) y sobre un fondo verde claro (9), con el tipo de letra Ms Sans Serif (recuerde que en el comando se ha de escrbir el nombre del tipo de letra todo junto, sin espacios), de un tama�o 14 puntos. /drawcopy [-ihnt] @nombre [color] <x y w h> @destino <x y [w h]> Copia parte de una ventana de imagen a otra parte de la ventana o a otra ventana. Si especificamos los par�metros [w h] la seccion de la imagen que hayamos copiado ser� ensanchada/estrechada a ese tama�o (el especificado por [w h]) en la ventana de destino. F�jeses que si lo que quiere es copiar un trozo de una imagen desde una seccion de una ventana a otra secci�n de la misma ventana, @nombre y @destino ser�n la misma ventana. Los par�matros [-ihn] son los mismos que explicamos en /drawdot . y en cuanto a t indica que hemos especificado el valor [color] como un valor $rgb equivalente al color que queremos que sea transparente en la imagen que hayamos copiado. Ejemplo: /drawcopy @miventana 0 0 100 100 @miventana2 10 10 Este ejemplo copiara el contenido de la ventana @miventana contenido desde x(0) y(0) hasta x(100) y(100) a @miventana2 en la posicion x(10) y(10) /drawsave @nombre <archivo.bmp> Guarda la imagen de fondo actual de la ventana @nombre como un archivo de nombre <archivo.bmp> Ejemplo: /drawsave @miventana ventanita.bmp Este ejemplo guaradar� la imagen de fondo que tengamos en la ventana @miventana en un fichero con el nombre ventanita.bmp. /drawscroll [-hn] @nombre <x> <y> <x y w h> Desplaza la regi�n de la ventana comprendida en el rect�ngulo <x y w h> (recuerde: x posici�n x de la esquina superior izquierda, y posici�n y de la esquina superior izquierza, w longitud del rect�ngulo, h altitud del rectangulo, todo en pixels) <x> pixels en el eje X y <y> pixels en el eje Y. Los valores de <x> e <y> pueden ser un n�mero negativo si queremos indicar que la regi�n se desplaze hacia la izquierda o hacia abajo respectivamente. [-hn] son los mismos que en el comando drawdot Ejemplo: /drawscroll @miventana 10 20 50 50 200 200 Este ejemplo desplazar� la regi�n de la ventana @miventana contenida en el rect�ngulo 50 50 200 200 10 pixels hacia la derecha y 20 hacia arriba /drawpic [ihntsc] @nombre [color] <x y [w h]> [x y w h] <archivo.bmp> Y llegamos sin duda al comando m�s �til de todos los de las ventanas de imagen, con este comando podremos cargar una imagen cualquiera <archivo.bmp> (con formato .bmp) en una ventana, en las coordinadas que indiquemos <x y> . Si indicamos la longitud y altitud [w h] la imagen sera ensanchada/estrechada a ese tama�o. El par�metro opcional [x y w h] lo usaremos para indicar qu� parte del archivo <archivo.bmp> queremos mostrar, �til por si tenemos un bmp grande con varias im�genes y queremos mostrar solo una de ellas. [-ihn] corresponden a los par�metros explicados en drawdot. Otros par�metros que acepta este cmando son: -t | Indica que hemos especificado el valor [color] con el fomato $rgb(N,N,N) donde N es un numero comprendido entre 0 y 255, y ese color ser� tratado como transparente en el archivo que queramos mostrar. | | | -s | Indica que hemos especificado los par�metros [w h] para ensachar/estrechar la imagen. | | | -c | Indica que la imagen debe ser puesta en la memoria cach�, esto hace que si en la misma sesi�n quisieramos volver a hacer uso de esa imagen, el tiempo de carga ser�a muy inferior. La cach� puede almacenar hasta un m�ximo de 30 im�genes, a partir de ese n�mero empezaran a reemplazarse las que lleven m�s tiempo sin usarse por las m�s nuevas. |
Ejemplo: /drawpic t @miventana $rgb(0,0,0) 0 0 c:\ventanita.bmp Este ejemplo mostrar� la imagen c:\ventanita.bmp en la ventana @miventana en las coordinadas x(0) y(0) y las regiones de la imagen de color $rgb(0,0,0) (negro en este caso) se mostrar�n como transparentes (se ver� el fondo de la ventana a trav�s de esas regiones). Con esto acabamos con los comandos para la modificaci�n de ventanas de imagen. Como habr� podido comprobar el dominio de las coordenadas x e y es imprescindible, y tambi�n la unidad de medida de tama�o de cualquier gr�fico por ordenador, el pixel, para especificar los tama�os de las figuras y/o im�genes. Esto s�lo se consigue mediante pr�ctica, y los que anteriormente hayan usado un programa de dise�o gr�fico como Corel Draw o Photoshop ya tendr�n algo de camino andado en este tema. Seguidamente veremos los identificadores que nos devolver�n informaci�n espec�fica de una ventana de imagen. Identificadores de Ventanas de Imagen $mouse.<propiedad> $mouse.win : Devuelve el nombre de la ventana sobre la que se encuentra el raton. $mouse.x : Devuelve la posicion x , relativa a la ventana de imagen, del raton. $mouse.y : Devuelve la posicion y , relativa a la ventana de imagen, del raton. $mouse.mx : Devuelve la posicion x relativa a la ventana principal del mIRC. $mouse.my : Devuelve la posicion y relativa a la ventana principal del mIRC. $mouse.dx : Devuelve la posicion x relativa al escritorio. $mouse.dy : Devuelve la posicion y relativa al escritorio. $rgb(n�,n�,n�) Este identificador ya lo hemos usado en la explicaci�n de los comandos, y sirve para especificar un color, pero con m�s detalle. Es decir que en vez de usar el color con un n�mero del 0 al 15, los indicaremos suministrando los valores de rojo, verde y azul del color(RGB). Si no controlas el RGB no te preocupes siempre puedes poner el color el el formato habitual (numero del 0 al 15). $getdot(@nombre,x,y) Devuelve el valor RGB del color del punto definido por los par�metros x e y . $inrect(x,y,x2,y2,w,h) Devuelve $true si el punto definido por x,y esta dentro del rect�ngulo definido por x2,y2,w,h . En caso contrario devuelve el valor $false. $height(texto,tipo_letra,tama�o) Devuelve la altura en pixels del texto especificado y con un tipo de letra y tama�o. Recuerda que el tipo de letra lo haa de escribir todo junto, por ejemplo: TimesNewRoman. $pic(archivo.bmp) Este identificador se puede usar de 3 formas: $pic(archivo.bmp).size : Devuelve el tama�o del .BMP especificado. $pic(archivo.bmp).height : Devuelve el tama�o del .BMP especificado. $pic(archivo.bmp).width : Devuelve el tama�o del .BMP especificado. $width(texto,tipo_letra,tama�o,B,C) Devuelve la longitud en pixels del texto especificado y con un tipo de letra y tama�o. Si el par�metro B es diferente de 0 se tomar� el tipo de letra en negrita. Si el par�metro C es diferente de 0 se ignorar�n el espacio ocupado por los controles de color, negrita y subrayado. Eventos y remotes en las ventanas de imagen Con las ventanas de imagen podemos usar los mismo eventos y manejo de remotes que empleabamos en el resto de ventanas personalizadas, como por ejemplo el evento ON INPUT (si la ventana contaba con una editbox) o los eventos ON OPEN y ON CLOSE que se ejecutaban cuando abriamos o cerr�bamos la ventana en cuesti�n. En lo que se refiere a ventanas de imagen, no existe ning�n evento remoto para ellas en especial, seguiremos usando por tanto los ya vistos en el cap�tulo anterior, pero eso s�, a la hora de definir men�s Popup dentro de la secci�n Remotes para una ventana de imagen, s� que podr� incluir nuevas funciones que ayudar�n a sus ventanas a ser un poco m�s �tiles y sofisticadas. Por ejemplo, usted podr� hacer que al pulsar en cierta regi�n de una imagen pase una cosa, y al pulsar en otra regi�n pase otra cosa. Vayamos por partes, como he dicho antes la nueva funcionalidad de las ventanas de imagen se implementar� donde en las ventanas personalizadas normales implement�bamos el menu Popup. Por ejemplo si creamos la siguiente ventana: /window p @otraventana 100 100 100 100 @otraventana Y queremos definir su menu popup, escribiremos en la secci�n Remotes: menu @otraventana { } Y aqu� empiezan los cambios. Por supuesto, es perfectamente posible especificar el men� popup que queremos para esa ventana dentro de los corchetes pero eso deber� ser puesto al final. Y me explico: antes de escribir el men� popup podremos incluir una serie de "gatillos" que saltar�n cuando ocurra cierto evento. A continueaci�n se detallan cuales son estos gatillos que usted podr� especificar dentro de la clausula menu @otraventana: mouse: Saltar� cuando el rat�n se mueva por encima de la ventana. sclick: Saltar� cuando el usuario haga click con el bot�n izquierdo sobre la ventana. dclick: Saltar� cuando el usuario haga click con el bot�n derecho sobre la ventana. uclick: Saltar� cuando el usuario suelte el bot�n izquierdo del rat�n. lbclick: Saltar� cuando se haga un click sobre un objeto de una listbox. leave: Saltar� cuando el rat�n salga de a ventana (se mueva fuera de la ventana). Cuando usemos este gatillo, podemos usar el identificador $leftwin que nos devolver� el nombre de la ventana de la que sali� el rat�n. drop: Saltar� cuando el usuario haga click con bot�n izquierdo sobre la ventana, mantenga el bot�n pulsado, mueva el rat�n y despu�s lo suelte otro lugar. Antes de liarle m�s, le presentar� un ejemplo de c�mo podr�a usar estos gatillos para que le quede un poco mas claro: menu @otraventana { mouse: /echo s El rat�n se ha movido hasta $mouse.x $mouse.y sclick: /echo s Ha hecho click en las coordenadas $mouse.x , $mouse.y dclick: /echo s Ha hecho doble click sobre las coordenadas $mouse.x , $mouse.y uclick: /echo s Ha soltado el boton en las coordenadas $mouse.x , $mouse.y leave:{ - echo s Ha salido de la ventana $leftwin
window c $leftwin
} Popup 1 .sub-popup1: /comando1 .sub-popup2: /comando2 Popup2: /comando3 - Popup3: /comando4 } Ahora f�jese bien en el c�digo que acaba de leer. Hay unas cosas importantes que deber�an de quedar claras con ese ejemplo: - Como ha visto los gatillos de una ventana de imagen se especifican dentro de la clausula menu @otraventana y siempre ANTES que el menu popup.
- El menu popup de la ventana se especifica, normalmente, de la misma forma que en las ventanas personalizadas normales (despu�s de los "gatillos").
- Se puede hacer uso de los identificadores $mouse.x y $mouse.y para hallar las coordenadas en las que se encuentra situado el rat�n (siempre relativas a la ventana de imagem).
- Se pueden incluir varios comandos para un mismo gatillo usando llaves { } como hemos hecho en el ejemplo del gatillo leave.
Aunque le parezca incre�ble, con lo que se ha explicado hasta ahora ya se puede hacer cualquier cosa que haya visto en cualquier script que tenga que ver con ventanas de imagen. El uso de estas ventanas no es sencillo, y se hace verdaderamente muy pesado, as� que ser�a conveniente que el lector se asegurar� de si en realidad va a valer la pena el hacer una ventana de imagen para algo que quiz�s un simple menu popup podr�a solucionar. De cualquier forma a continuaci�n se va a exponer y explicar un ejemplo que aunque tenga una escasa utilidad servir� para que pueda ver todos estos comandos e identificadores en acci�n. En este ejemplo se da por hecho que los conocimientos del lector sobre Aliases, Remotes y popups son suficientes. Ejemplo 1: Crear una imagen interactiva Para ello necesitaremos, primeramente, una imagen, usaremos la siguiente: Esta en concreto tiene unas dimensiones de 100x73 pixels, este valor nos ser� util m�s adelante, se supondr� que la imagen se encuentra en c:\pregunta.bmp. Si lo desea puede bajarla en formato BMP desde aqu�. Ahora, como ya habr� adivinado, lo que haremos ser� transformar esa imagen en una ventana de imagen, y hacer que si el usuario pulsa el rat�n sobre SI, se cierre el mIRC y, si por el contrario, pulsa sobre NO, se cierre la ventana de imagen y que no ocurra nada m�s. Por lo tanto lo primero ser� crear un ALIAS que abra la ventana de imagen y cargue en ella pregunta.bmp. Copiaremos lo siguente en la secci�n Aliases del editor del mIRC: /pregunta { set %longitud $pic(c:\pregunta.bmp).width set %altitud $pic(c:\pregunta.bmp).height /window p +b @pregunta 200 200 %longitud %altitud @pregunta drawpic c @pregunta 0 0 c:\pregunta.bmp } Hasta aqu� lo que hemos hecho es sencillo, declaramos el alias /pregunta. Y lo que har� ese alias es guardar la longitud en pixels del la imagen en la variable %longitud , despu�s guardar� la altitud en pixels de la imagen en la variable %altitud. Seguidamente se declara la ventana de imagen @pregunta, usando el par�metro +b para que no tenga barra de t�tulo ni botones de minimizar, maximizar y cerrar. Hemos usado las variables %altitud y %longitud para que la ventana sea exactamente del mismo tama�o que la imagen, de esa forma esta ocupar� toda la ventana y quedar� bien (sin ningun espacio en blanco). Despues mediante el comando drawpic hemos cargado la imagen en la ventana que hemos creado y hemos metido esa imagen en la cache (mediante el [-c] ) para que si la volvieramos a utilizar en la misma sesion se cargara m�s rapidamente. Ahora iremos a los remotes para definir el menu @pregunta y el gatillo que har� que cuando hagamos un click sobre SI, se cierre el mIRC, y que cuando hagamos un click sobre NO, se cierre la ventana. Copie lo siguiente en los Remotes: menu @pregunta { sclick:{ } Informaci�n de la imagen .�Cu�nto ocupa?: /echo s La imagen ocupa $pic(c:\pregunta.bmp).size bytes - Cerrar ventana: /window c @pregunta } Esta es la secci�n m�s interesante del c�digo, y aqu� se ha mostrado como se har� siempre que queramos hacer que ocurran cosas diferentes seg�n en qu� la regi�n pulsemos de una imagen. Para ello se ha recurrido al gatillo sclick que como se explic� antes salta cuando el usuario hace un simple click sobre la ventana. Lo que pasar� en este caso es que el script comprobar� donde ha hecho el click, y dependiendo de donde sea, ejecutar� unos comandos u otros. Pero al mIRC no le podemos decir si el usuario clickea sobre el SI haz esto y lo otro, al mIRC le tendremos que decir si el usuario hace click en el rectangulo x y w h , entonces ejecuta estos comandos. Y eso hemos hecho, primero hemos abierto la imagen en un programa de dise�o, el Paint de Windows basta, y moviendo el rat�n sobre la imagen nos aparece en la esquina inferior derecha del programa las coordenadas por las que estamos moviendo el raton, as� pues apuntamos las coordenadas que definen el rectangulo que contiene a la palabra SI. En este caso el rectangulo tendria su esquina superior izquierda en x(49) y(46) y su esquina inferior derecha en x(73) y(78) . Entonces le hemos dicho al mIRC: si cuando el usuario hace click el raton esta entre las coornidadas x(49) y x(73) y adem�s esta entre las coordinadas y(46) e y(78) eso necesriamente significa que el usuario ha hecho click sobre la palabra SI y por lo tanto ejecutaremos el comando exit , que cierra el mIRC, no hace falta que le digamos antes que cierre la ventana de imagen puesto que al cerrarse el mIRC se cierran automaticamente todas las ventanas que haya creadas. An�logamente se ha seguido el mismo procedimiento para detectar si el usuario hace click sobre NO, y en tal caso hacemos que se cierre la ventana de imagen y que no pase nada m�s. Por �ltimo le hemos dicho que si el click no se produce ni sobre la palabra SI ni sobre la palabra NO que nos salga un mensaje en la ventana de status indic�ndonos donde tenemos que pulsar. Visto eso, el resto es sencillamente el men� que aparecer� al pulsar boton derecho sobre la ventana, que se especifica, como ya sabe, despues de el/los gatillos que hayamos empleado. Hasta aqu� este tutorial de ventanas personalizadas. Soy consciente de que al principio parecen muy complicadas, pero en realidad no lo son tanto, lo que s� son es muy pesadas de crear , por eso se recomienda que se usen s�lo cuando sea estrictamente necesario, ya que la mayor parte de las veces se podr�a llevar a cabo la misma tarea, y de una forma m�s c�moda mediante popups. De cualquier forma, se han comentado con detalles todas las posibilidades de las ventanas personalizadas y de imagen para que tambi�n el lector ya experto les pueda sacar el m�ximo provecho. |