Sistemas operativos modernos

las coordenadas (x,}') del punto donde inicia la cadena, un apuntador a la cadena misma y su longitud. La tercera llamada libera el contexto de dispositivo para indicar que el programa ya terminó de dibujar por el momento. Observe que hdc se usa de forma análoga a como se usa un descriptor de archivo en UNIX, y que ReleaseDC contiene información redundante (el uso de hdc especifica de manera única una ventana). Es común en Windows el uso de información redundante que no tiene valor real. Otra nota interesante es que, cuando se obtiene hdc de esta manera, el programa sólo puede escribir en el área cliente de la ventana, no en la barra de título ni en otras partes. En lo interno, se mantiene una región de recorte en la estructura de datos del contexto de dispositivo. Se igno­ ra cualquier cosa que se dibuje fuera de la región de recorte. Sin embargo, hay otra forma de ob­ tener un contexto de dispositivo, GetMndowDC, que define la región de recorte como toda la ventana. Otras llamadas restringen la región de recorte de distintas maneras. Tener varias llama­ das que hacen casi la misma cosa es otra característica de Windows. Sería imposible presentar aquí un tratamiento completo de la GDI. El lector interesado pue­ de obtener información adicional consultando las referencias antes mencionadas. No obstante, tal vez valga la pena hablar un poco de la GDI, dada su importancia. Cuenta con diversas llamadas a procedimientos para obtener y liberar contextos de dispositivo, obtener información acerca de contextos de dispositivo, conocer y establecer los atributos de contextos de dispositivo (por ejem­ plo, el color del fondo), manipular objetos de GDI como plumas, pinceles y fuentes, cada uno de los cuales tiene sus propios atributos. También hay, por supuesto, numerosas llamadas de la GDI para dibujar en la pantalla. Los procedimientos de dibujo pertenecen a cuatro categorías; trazar líneas y curvas, dibu­ jar áreas rellenas, administrar mapas de bits y exhibir texto. Ya vimos un ejemplo de la escri­ tura de texto, así que ahora daremos un vistazo a una de las otras categorías. La llamada Rectangle(hdc, xizq, ysup, xder, ytnf); dibuja un rectángulo relleno cuyas esquinas son {xizq, ysup) y {xder, yinf). Por ejemplo, Rectangte(hdc, 2, 1, 6, 4); dibuja el rectángulo que se muestra en la figura 5-42. La anchura y el color de la línea, y el color del relleno se toman del contexto de dispositivo. Otras llamadas GDI son similares. Mapas de bits Los procedimientos de la GDI son ejemplos de gráficos vectoriales. Se utilizan para colocar fi­ guras geométricas y texto en la pantalla. Es fácil ajustar su escala a pantallas más grandes o más pequeñas (siempre que el número de píxeles en la pantalla sea el mismo). También son re­ lativamente independientes del dispositivo. Puede colocarse una serie de llamadas a procedi­ mientos de GDI en un archivo que describe un dibujo complejo. Este tipo de archivos se denominan metaarchivos de Windows y se utilizan en forma amplia para transmitir dibujos de un programa Windows a otro. Tales archivos tienen la extensión .wmf.

RkJQdWJsaXNoZXIy MjI4NDcx