Regresar a la página principal

Capitulo II -->

Capitulo I

INTRODUCCIÓN A LAS LIBRERÍAS API’S 32 DE WINDOWS

Analicemos antes que nada ciertas cositas, por ejemplo, "LIBRERÍA", si vamos a una librería (y hablo de un establecimiento que vende puros libros), lo primero que ustedes ven es que los libros están ordenados por temas, por ejemplo, si quieres libros de leyes, pues irán a la sección de leyes, si quieres idiomas irán a la sección de idiomas y así sucesivamente, después que llegas a la sección que quieres ¿que ves?. Pues libros!, obvio no!. ¿Pero ves los mismos libros? ¡No verdad! Veras diferentes libros que tratan diferentes temas sobre la sección escogida, es decir, cada libro tiene un fin en común o un propósito especifico. Ahora que tiene que ver libros con API Win32.

Sencillo, imaginemos que nuestra librería es Windows, en nuestra librería encontramos departamentos kernel.dll, guid32.dll, etc, en nuestro departamento encontramos los libros que son las funciones API Win32 (Interfaz de programación de aplicaciones), así de simple!. Cada API no es nada mas que una simple función que tiene un propósito único y uniéndolas o interactuando con ellas se pueden hacer cosas realmente útiles y sorprendentes. Ahora yo dije que la librería era Windows, bueno esto lo hice para que vieran el ejemplo, en realidad se llama librerías a las dll, pero creo que como lo explique se ve mas claro.

Pero ustedes dirán ¿Cómo accedemos a las API'S? Pues este manual les enseñara, como se usan y como accedemos a ella, vamos a usar el lenguaje Visual Basic 6.0 para ello, después que conozcan y entiendan las API'S pueden llevarlo a cualquier lenguaje como Visual C++, VJ++, Visual Foxpro, etc. Inclusive el aprender el lenguaje VC++, se hace mucho mas fácil si conocen las API'S

COSAS DE WINDOWS

Todos nos sorprendimos cuando saltamos de Windows 3.1 a Windows 95, se podría decir que a mi manera de ver ese fue el salto mas grande, ya sea en interfaz, programación, facilidad, etc, ya que XP para mi es los mismo pero mas bonito. Alguna vez nos hemos preguntado como programadores, ¿como funciona todo esto? , en realidad no podemos saberlo ya que los códigos de Windows permanecen en secreto en Microsoft, pero viendo su interfaz y su funcionamiento mas o menos podemos deducir como Windows hace las cosas, por ejemplo, imaginemos que tenemos 4 ventana abiertas y que la vemos al mismo tiempo, ustedes le dan clic a una de las ventanas y ella se marca y si estaba en el fondo pues se pone de primera, nadie se ha preguntado ¿Cómo sabe Windows que esa ventana estaba ahí?, y no solo eso, imaginen que tienen Excel y Word abierto y le dan a Word y luego entran al menú de Word, ¿Cómo sabe Windows que le diste a Word y estas abriendo el menú de Word y no de Excel?. Es ahí donde entra esta palabrita:

HWND (IDENTIFICADOR DE VENTANAS).

El hwnd es un numero, ahora ¿que función cumple ese numero?, imaginemos que tenemos 3 aplicaciones abiertas Word, Excel, y PowerPoint, y la tenemos abierta al mismo tiempo, cuando damos clic a una de ellas en la pantalla, Windows sabe a que programa se da clic gracias al HWND, cada ventana (ojo ventana no programa, ya explicare esto con mas detalle), posee un numero único al momento de ejecutarse, este numero único entra en un registro de ventanas abiertas en el momento de ejecutarlo, cuando se le da clic a una ventana o cualquier otro mensaje él (Windows) sabe para quien va el mensaje ya que el tiene un registro de las ventanas abiertas, y mediante un algoritmo ejecuta la función encargada de controlar el mensaje.

Que quise decir con “OJO ventana no programa”, todo lo que tu ves en Windows es una ventana, en este momento te acabas de sorprender con lo que dije pero es lo correcto, ABSOLUTAMENTE TODO lo que estas viendo es una ventana, desde un botón, un listbox, un combobox, un menú, TODO!, ¿que significa? que si tu tienes 100 botones, cuando tu aplicación arranca se generan 100 HWND únicos para cada componente, es obvio ver de que tienen que ser único ya que si se repitiera alguno por error, eso podría crear un colapso en Windows ya que el no sabría a quien enviarle el mensaje. Este numero hwnd no lo colocas tu, ni puedes colocárselo, Windows es el encargado de colocar ese numero cuando una aplicación arranca, y se lo coloca a todo lo que sea ventana, de esta manera es obvio pensar que Windows controla los clic, y todos lo demás mensajes por este numero de identificación. Para que lo vean mas fácil, es como una biblioteca la cota de los libros serian en este caso una especie de hwnd, ya que cada libro posee una cota única y no se puede repetir, el bibliotecario por el numero sabe la ubicación del libro y procede a buscarlo, parecido sucede en Windows, de alguna manera Windows debe de controlar todo lo que es posicionamiento, y tratamiento de mensajes y sabe a quien va gracias a ese numero que se llama hwnd.

Es difícil ver que todo es una ventana, pero es fácil ¿Qué es un botón?. Bueno a un formulario vació, quítenle el caption (parte superior donde esta el texto y los botones de maximizar, cerrar y minimizar), déjenle los bordes, póngalo gris, y coloquen un texto en el centro y que tienen ¡UN BOTON!, ¿qué es un combobox?. Un formulario con los bordes, sin el caption, color de fondo blanco y un botón al lado. Difícil de imaginar!! y todo se origino con un formulario o ventana, el problema de entender esto, es que nosotros entendemos como ventana a un formulario típico y en realidad en Windows ventana es algo un poco mas abstracto, pero no se preocupen en el camino iremos aprendiendo esos detalles.

HDC (DISPOSITIVO DE CONTEXTO).

Imaginen un pintor, el pintor para pintar ¿que necesita?, bueno de manera básica seria un pincel, un cabestrillo, colores y un lienzo; el cabestrillo es mi aplicación y ella se identifica con el HWND, y el lienzo es mi HDC, es decir, el hdc es el lugar donde se pinta tan simple como eso, toda ventana (me refiero a TODO!). posee un hdc, el hdc es donde nosotros ponemos nuestra creatividad, este hdc también es un numero único, que no se duplica, y solo lo usamos cuando dibujamos. Cuando veamos las API’S graficas entenderán un poco mas esto.

MENSAJERIA WINDOWS

Es fácil ver, que Windows es un lenguaje orientado a objetos o que por lo menos esa es la filosofía que quiere vender, ahora una de las cosas mas difíciles para los programadores cuando están aprendiendo todo esto de programación orientada a objetos es como hacerlos funcionales, es decir, como enviar un mensaje de un objeto a otro; ya dije que todo era una ventana, y desde un punto de vista todo es un objeto, ahora esos objetos hablan entre si, inclusive para no complicarnos, el movimiento del ratón genera un mensaje que el usuario le transmite a Windows, si ustedes se movieran desde el píxel 0 hasta el píxel 800 (ancho), increíblemente Windows esta recibiendo 800 mensajes del usuario ya que para cada movimiento en píxel se genera dicho mensaje, ahora que hace Windows, bueno el recibe el mensaje verifica en su lista de ventanas activas “hwnd”, y verifica cual hwnd se encuentra en la posición del mouse, y el hwnd seleccionado será el ganador de dicho mensaje, si el objeto o ventana tiene un código para procesar dicho mensaje este se ejecuta en caso contrario este se omite, es decir, el papel de Windows es como el de una compañía de correo, agarra el mensaje del EMISOR y se lo envía al RECEPTOR. Es increíble pero cuando veamos mas profundo esto se van a impresionar de cómo lo creadores de Windows a mi manera de ver hicieron un excelente y practico trabajo con este tema de mensajes, TODO absolutamente TODO gira en los mensajes.

¿COMO NOS COMUNICAMOS?

Si conocemos a una persona y la vemos en la calle inmediatamente tu procedes a saludarla en el saludo tu usas un componente de tu cuerpo para comunicarte (la boca), ese componente envía una onda (mensaje), la cual es recibida por el receptor por otro componente (oreja), y su cerebro inmediatamente reacciona al mensaje y de ahí se puede generar una conversación, es fácil ver esto, ya que lo hacemos a diario, pero ustedes dirán como hablo con Windows o como Windows habla conmigo, evidentemente Windows no habla con los componentes desde un punto de vista literario, sino desde un punto de vista informático.

Un mensaje de Windows tiene básicamente esta estructura.

Mensaje “Componente que recibe el mensaje”, “Tipo de mensaje”, mensaje1, mensaje_opcional

Esta es una estructura básica o simple de un mensaje de Windows, mas adelante veremos la función API encargada de ello. Pero se preguntaran que significan esos 4 componentes imaginen que Windows hablara, y cuando entran a Windows el los saluda, haría lo siguiente:

Mensaje “TU”, “SALUDOS”, “Buenos Días”, NULL.

Que significa esto: que el receptor eres “tu”, Windows te va saludar “SALUDOS”, y te dirá “Buenos Días”, el mensaje opcional es NULL (Nada). Ahora esto no es un mensaje real de Windows es un ejemplo, pero veamos los componentes:

Mensaje = Windows usa la función API SendMessage y PostMessage para ese trabajo.

Componente que recibe el mensaje = seria el hwnd del receptor, es decir, quien va recibir el mensaje.

Tipo de mensaje = muy importante este parámetro, aquí se le pasa un numero, que quiero decir, Windows tiene una lista de mensajes que los identifica por un numero. Ejemplo.

1 = Movimiento del mouse

2 = Clic del mouse

3 = Tecla presionada

etc.

Estos números no son los números reales, sino estoy poniendo un ejemplo, veremos las constantes reales cuando veamos la función.

mensaje1 = mensaje que enviamos o recibimos.

mensaje_opcional = mensaje que enviamos o recibimos.

De seguro están confundidos con estos dos últimos parámetros ya que coloque “mensaje que enviamos o recibimos”, se confundirán con la palabra “recibimos”, algunas veces estas funciones no sirven solo para enviar sino también para recibir un dato u información, lo veremos claro mas adelante.

Regresar arriba

Regresar a la página principal

Capitulo II -->

Desarrollado por Eduardo Roa. Copyright 2002-2003 Todos los derechos reservados