Compartir a través de


Operaciones en objetos gráficos

Una vez que una aplicación crea un controlador de dominio de pantalla o impresora, puede empezar a dibujar en el dispositivo asociado o, en el caso del controlador de dominio de memoria, puede empezar a dibujar en el mapa de bits almacenado en la memoria. Sin embargo, antes de comenzar el dibujo y, a veces, mientras el dibujo está en curso, a menudo es necesario reemplazar los objetos predeterminados por nuevos objetos.

Una aplicación puede examinar los atributos de un objeto predeterminado llamando a las funciones GetCurrentObject y GetObject . La función GetCurrentObject devuelve un identificador que identifica el lápiz actual, el pincel, la paleta, el mapa de bits o la fuente, y la función GetObject inicializa una estructura que contiene los atributos de ese objeto.

Algunas impresoras proporcionan lápices residentes, pinceles y fuentes que se pueden usar para mejorar la velocidad de dibujo en una aplicación. Se pueden usar dos funciones para enumerar estos objetos: EnumObjects y EnumFontFamilies. Si la aplicación debe enumerar los lápices o pinceles residentes, puede llamar a la función EnumObjects para examinar los atributos correspondientes. Si la aplicación debe enumerar fuentes residentes, puede llamar a la función EnumFontFamilies (que también puede enumerar fuentes GDI).

Una vez que una aplicación determina que un objeto predeterminado necesita reemplazarlo, crea un nuevo objeto llamando a una de las siguientes funciones de creación.

Graphic (objeto) Función
Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap
Pincel CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush
Paleta de colores CreatePalette
Fuente CreateFont, CreateFontIndirect
Lápiz CreatePen, CreatePenIndirect, ExtCreatePen
Region CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn

 

Cada una de estas funciones devuelve un identificador que identifica un nuevo objeto. Una vez que una aplicación recupera un identificador, debe llamar a la función SelectObject para reemplazar el objeto predeterminado. Sin embargo, la aplicación debe guardar el identificador que identifica el objeto predeterminado y usar este identificador para reemplazar el nuevo objeto cuando ya no sea necesario. Cuando la aplicación termine de dibujar con el nuevo objeto, debe restaurar el objeto predeterminado llamando a la función SelectObject y, a continuación, eliminar el nuevo objeto llamando a la función DeleteObject . Si no se eliminan objetos, se producen problemas graves de rendimiento.