dc.h

Clase wxDC

Un wxDC es un "contexto de dispositivo" sobre el que se pueden dibujar gráficos y texto.

Jerarquía:

Jerarquía de la clase wxDC

Está pensado para representar diferentes dispositivos de salida y ofrece una API abstracta común para dibujar en cualquiera de ellos.

wxWidgets ofrece una API de dibujo alternativa basada en los modernos backends de dibujo GDI+, CoreGraphics, Cairo y Direct2D. Ver wxGraphicsContext, wxGraphicsRenderer y clases relacionadas. También hay un wxGCDC que enlaza las APIs ofreciendo la API wxDC sobre un wxGraphicsContext.

wxDC es una clase base abstracta y no puede crearse directamente. Utilizar wxPaintDC, wxClientDC, wxWindowDC, wxScreenDC, wxMemoryDC o wxPrinterDC. Hay que tener en cuenta que los contextos de dispositivo que están asociados con las ventanas (es decir, wxClientDC, wxWindowDC y wxPaintDC) utilizan la fuente y los colores de la ventana de forma predeterminada (a partir de wxWidgets 2.9.0), pero las otras clases de contexto de dispositivo utilizan los valores predeterminados del sistema, por lo que siempre se deben establecer las fuentes y los colores adecuados antes de utilizarlos.

Además de las versiones de los métodos documentadas a continuación, también existen versiones que aceptan un único parámetro wxPoint en lugar de los dos wxCoord o wxPoint y wxSize en lugar de los cuatro parámetros wxCoord.

A partir de wxWidgets 2.9.0 todo el código wxDC ha sido reorganizado. Todo el código dependiente de la plataforma (en realidad todo el código de dibujo) se ha trasladado a clases backend que derivan de una clase wxDCImpl común. Las clases visibles para el usuario como wxClientDC y wxPaintDC simplemente reenvían todas las llamadas a la implementación backend.

Unidades lógicas y de dispositivo

En el contexto de wxDC existe una distinción entre unidades lógicas y unidades de dispositivo.

Las unidades de dispositivo son las unidades propias de cada dispositivo; por ejemplo, para una pantalla, una unidad de dispositivo es un píxel. Para una impresora, la unidad de dispositivo viene definida por la resolución de la impresora (normalmente expresada en PPP: puntos por pulgada).

Todas las funciones wxDC utilizan en su lugar unidades lógicas, a menos que se indique explícitamente. Las unidades lógicas son unidades arbitrarias mapeadas a unidades de dispositivo utilizando el modo de mapeo actual (ver wxDC::SetMapMode).

Este mecanismo permite reutilizar el mismo código que imprime, por ejemplo, en una ventana de la pantalla para imprimir, por ejemplo, en un papel.

Soporte para Transparencia / Canal Alfa

En general, los métodos wxDC no soportan la transparencia alfa y el componente alfa de wxColour es simplemente ignorado y es necesario utilizar wxGraphicsContext para un soporte completo de transparencia. Hay, sin embargo, algunas excepciones: en primer lugar, en macOS y GTK+ 3 los colores con canal alfa son compatibles con todas las clases normales derivadas de wxDC, ya que utilizan wxGraphicsContext internamente. En segundo lugar, en todas las plataformas wxSVGFileDC también soporta completamente el canal alfa. En ambos casos las instancias de wxPen o wxBrush que se construyen a partir de wxColour utilizan los valores alfa del color al trazar o rellenar.

Soporte para Matriz de Transformación

En algunas plataformas (actualmente bajo MSW, GTK+ 3, macOS) wxDC tiene soporte para aplicar una matriz de transformación afín arbitraria a su sistema de coordenadas (desde 3.1.1 esta característica también está soportada por wxGCDC en todos los ports). Llamar a CanUseTransformMatrix() para comprobar si este soporte está disponible y luego llamar a SetTransformMatrix() si lo está. Si la matriz de transformación no está soportada, SetTransformMatrix() siempre devuelve simplemente false y no hace nada.

Esta función sólo está disponible cuando la opción de construcción wxUSE_DC_TRANSFORM_MATRIX está activada.

Funciones miembro

Blit()

bool wxDC::Blit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, wxDC * source, wxCoord xsrc, wxCoord ysrc, wxRasterOperationMode logicalFunc = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord )

Copia de un DC origen a este DC.

Con este método puede especificar las coordenadas de destino y el tamaño del área a copiar, que será el mismo tanto para el DC de origen como para el de destino. Si se necesita aplicar escalado mientras se copia, utilizar StretchBlit().

Hay que tener en cuenta que las coordenadas xsrc e ysrc del DC de origen se interpretan utilizando el sistema de coordenadas del DC de origen actual, es decir, la escala, la posición de origen y las direcciones de los ejes se tienen en cuenta al transformarlas a coordenadas físicas (píxel).

Parámetros
xdest
Posición x del contexto del dispositivo de destino.
ydest
Posición y del contexto del dispositivo de destino.
width
Anchura del área de origen que se va a copiar.
height
Altura del área de origen que se va a copiar.
source
Contexto del dispositivo de origen.
xsrc
Posición x del contexto del dispositivo de origen.
ysrc
Posición y del contexto del dispositivo de origen.
logicalFunc
Función lógica a utilizar, véase SetLogicalFunction().
useMask

Si es true, Blit realiza un blit transparente utilizando la máscara asociada al mapa de bits seleccionado en el contexto del dispositivo fuente. La implementación de Windows hace lo siguiente si no se puede utilizar MaskBlt:

  1. Crea un mapa de bits temporal y copia en él el área de destino.
  2. Copia el área de origen en el mapa de bits temporal utilizando la función lógica especificada.
  3. Establece el área enmascarada en el mapa de bits temporal en NEGRO uniendo el mapa de bits de máscara con el mapa de bits temporal con el color de primer plano establecido en BLANCO y el color de fondo establecido en NEGRO.
  4. Establece el área sin máscara en el área de destino en NEGRO uniendo el mapa de bits de máscara con el área de destino con el color de primer plano en NEGRO y el color de fondo en BLANCO.
  5. Une el mapa de bits temporal con el área de destino.
  6. Elimina el mapa de bits temporal.

Esta secuencia de operaciones garantiza que el área transparente del origen no tiene por qué ser negra, y admite funciones lógicas.

Nota: en Windows, el blitting con máscaras puede acelerarse considerablemente compilando wxWidgets con la opción wxUSE_DC_CACHEING activada. También puede influir en si se utiliza MaskBlt o el código explícito de máscara, utilizando wxSystemOptions y estableciendo la opción no-maskblt a 1.

xsrcMask
Posición x de origen en la máscara. Si tanto xsrcMask como ysrcMask son -1, se asumirá xsrc e ysrc como posición de origen de la máscara. Actualmente sólo se utiliza en Windows.
ysrcMask
Posición y de origen en la máscara. Si xsrcMask e ysrcMask son -1, se asumirá que xsrc e ysrc son la posición de origen de la máscara. Actualmente sólo se utiliza en Windows.
Observaciones

Hay soporte parcial para Blit() en wxPostScriptDC, bajo X.

CalcBoundingBox()

void wxDC::CalcBoundingBox( wxCoord x, wxCoord y )

Añade el punto especificado a la caja delimitadora que se puede recuperar con las funciones MinX(), MaxX() y MinY(), MaxY().

CanDrawBitmap()

bool wxDC::CanDrawBitmap() const

¿Admite el DC el dibujo de mapas de bits?

CanGetTextExtent()

bool wxDC::CanGetTextExtent() const

¿Admite el DC el cálculo del tamaño necesario para dibujar texto?

CanUseTransformMatrix()

bool wxDC::CanUseTransformMatrix() const

Comprueba si el uso de la matriz de transformación está soportado por el sistema actual.

Esta función devuelve true para las plataformas MSW y GTK+ 3 y desde 3.1.1 también para wxGCDC en todos los ports.

Clear()

void wxDC::Clear()

Borra el contexto del dispositivo utilizando el pincel de fondo actual.

Hay que tener en cuenta que el método SetBackground() debe utilizarse para establecer el pincel utilizado por Clear(), el pincel utilizado para rellenar las formas establecidas por SetBrush() es ignorado por éste.

Si no se ha establecido ningún pincel de fondo, se utilizará un pincel blanco sólido para borrar el contexto del dispositivo.

CopyAttributes()

void wxDC::CopyAttributes(const wxDC & dc)

Copia los atributos de otro DC.

Los atributos copiados actualmente son:

  • Fuente.
  • Colores de primer y segundo plano del texto.
  • Pincel de fondo.
  • Dirección del diseño.

Hay que tener en cuenta que el factor de escala no se considera un atributo de wxDC y no es copiado por esta función.

Parámetros
dc
Un contexto de dispositivo fuente válido (es decir, su IsOk() debe devolver true).
CrossHair()

void wxDC::CrossHair(const wxPoint & pt)

Muestra una cruz usando el lápiz actual.

Se trata de una línea vertical y horizontal de la altura y anchura de la ventana, centrada en el punto dado.

CrossHair()

void wxDC::CrossHair( wxCoord x, wxCoord y )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DestroyClippingRegion()

void wxDC::DestroyClippingRegion()

Destruye la región de recorte actual para que no se recorte ninguna del DC.

DeviceToLogical()

wxPoint wxDC::DeviceToLogical(const wxPoint & pt) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DeviceToLogical()

wxPoint wxDC::DeviceToLogical( wxCoord x, wxCoord y ) const

Convierte las coordenadas del dispositivo (x, y) en coordenadas lógicas teniendo en cuenta todas las transformaciones aplicadas, como el modo de mapeo actual, los factores de escala, el origen del dispositivo, la orientación de los ejes y la transformación afín.

DeviceToLogicalRel()

wxSize wxDC::DeviceToLogicalRel(const wxSize & dim) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DeviceToLogicalRel()

wxSize wxDC::DeviceToLogicalRel( int x, int y ) const

Convierte las coordenadas x, y del dispositivo en coordenadas lógicas relativas teniendo en cuenta todas las transformaciones aplicadas como el modo de mapeado actual, factores de escala, transformación afín.

Utilizarlo para convertir distancias como, por ejemplo, anchura y altura.

DeviceToLogicalX()

wxCoord wxDC::DeviceToLogicalX(wxCoord x) const

Convierte la coordenada X del dispositivo en coordenada lógica, utilizando el modo de mapeado actual, el factor de escala del usuario, el origen del dispositivo y la orientación del eje.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

DeviceToLogicalXRel()

wxCoord wxDC::DeviceToLogicalXRel(wxCoord x) const

Convierte la coordenada X del dispositivo en una coordenada lógica relativa, utilizando el modo de mapeado actual y el factor de escala del usuario, pero ignorando la orientación del eje.

Utilizarlo para convertir una distancia horizontal como, por ejemplo, una anchura.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

DeviceToLogicalY()

wxCoord wxDC::DeviceToLogicalY(wxCoord y) const

Convierte la coordenada Y del dispositivo en coordenada lógica, utilizando el modo de mapeo actual, el factor de escala del usuario, el origen del dispositivo y la orientación del eje.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

DeviceToLogicalYRel()

wxCoord wxDC::DeviceToLogicalYRel(wxCoord y) const

Convierte la coordenada Y del dispositivo en una coordenada lógica relativa, utilizando el modo de mapeado actual y el factor de escala del usuario, pero ignorando la orientación del eje.

Utillizarlo para convertir una distancia vertical como, por ejemplo, una altura.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

DrawArc()

void wxDC::DrawArc( const wxPoint & ptStart, const wxPoint & ptEnd, const wxPoint & centre )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawArc()

void wxDC::DrawArc( wxCoord xStart, wxCoord yStart, wxCoord xEnd, wxCoord yEnd, wxCoord xc, wxCoord yc )

Dibuja un arco desde el punto inicial hasta el punto final.

Nota: DrawEllipticArc() tiene una semántica más clara y se recomienda utilizarla en lugar de esta función.

El arco dibujado es un arco de círculo centrado en (xc, yc). Su punto inicial es (xInicio, yInicio) mientras que su punto final es el punto de intersección de la línea que pasa por (xc, yc) y (xFin, yFin) con el círculo que pasa por (xInicio, yInicio).

El arco se dibuja en sentido contrario a las agujas del reloj entre los puntos inicial y final.

El lápiz actual se utiliza para el contorno y el pincel actual para rellenar la forma. Obsérvese que, a menos que el pincel sea transparente, también se dibujan las líneas que conectan el centro del círculo con los puntos finales del arco.

DrawBitmap()

void wxDC::DrawBitmap( const wxBitmap & bitmap, wxCoord x, wxCoord y, bool useMask = false )

Dibuja un mapa de bits en el contexto del dispositivo en el punto especificado.

Si useMask es true y el mapa de bits tiene una máscara de transparencia, el mapa de bits se dibujará de forma transparente.

Al dibujar un mapa de bits mono, se utilizará el color de primer plano del texto actual para dibujar el primer plano del mapa de bits (todos los bits se ponen a 1), y el color de fondo del texto actual para dibujar el fondo (todos los bits se ponen a 0).

DrawBitmap()

void wxDC::DrawBitmap( const wxBitmap & bmp, const wxPoint & pt, bool useMask = false )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawCheckMark()

void wxDC::DrawCheckMark(const wxRect & rect)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawCheckMark()

void wxDC::DrawCheckMark( wxCoord x, wxCoord y, wxCoord width, wxCoord height )

Dibuja una marca de verificación dentro del rectángulo dado.

DrawCircle()

void wxDC::DrawCircle( const wxPoint & pt, wxCoord radius )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawCircle()

void wxDC::DrawCircle( wxCoord x, wxCoord y, wxCoord radius )

Dibuja un círculo con el centro y el radio dados.

DrawEllipse()

void wxDC::DrawEllipse( const wxPoint & pt, const wxSize & size )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawEllipse()

void wxDC::DrawEllipse(const wxRect & rect)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawEllipse()

void wxDC::DrawEllipse( wxCoord x, wxCoord y, wxCoord width, wxCoord height )

Dibuja una elipse contenida en el rectángulo especificado, ya sea con la esquina superior izquierda y el tamaño dados o directamente.

La pluma actual se utiliza para el contorno y el pincel actual para rellenar la forma.

DrawEllipticArc()

void wxDC::DrawEllipticArc( const wxPoint & pt, const wxSize & sz, double sa, double ea )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawEllipticArc()

void wxDC::DrawEllipticArc( wxCoord x, wxCoord y, wxCoord width, wxCoord height, double start, double end )

Dibuja un arco de elipse.

La pluma actual se utiliza para dibujar el arco y el pincel actual se utiliza para dibujar el pastel.

x e y especifican las coordenadas x e y de la esquina superior izquierda del rectángulo que contiene la elipse.

width y height especifican la anchura y la altura del rectángulo que contiene la elipse.

start y end especifican los puntos finales del arco relativos a la posición de las tres en punto desde el centro del rectángulo. Los ángulos se especifican en grados, correspondiendo el ángulo de 0 grados a la dirección positiva del eje horizontal (las tres en punto).

Independientemente de que el inicio sea mayor o menor que el final, el arco se dibuja en el sentido contrario a las agujas del reloj. Además, si inicio es igual a fin, se dibuja una elipse completa.

Obsérvese que a diferencia de DrawArc(), esta función no dibuja las líneas de los extremos del arco, incluso cuando se utiliza un pincel no transparente.

DrawIcon()

void wxDC::DrawIcon( const wxIcon & icon, const wxPoint & pt )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawIcon()

void wxDC::DrawIcon( const wxIcon & icon, wxCoord x, wxCoord y )

Dibuja un icono en la pantalla (no hace nada si el contexto del dispositivo es PostScript).

Esta puede ser la forma más sencilla de dibujar mapas de bits en una ventana.

DrawLabel()

void wxDC::DrawLabel( const wxString & text, const wxBitmap & bitmap, const wxRect & rect, int alignment = wxALIGN_LEFT|wxALIGN_TOP, int indexAccel = -1, wxRect * rectBounding = NULL )

Dibuja el mapa de bits opcional y el texto en el rectángulo dado y lo alinea según lo especificado por el parámetro de alineación; también resaltará el carácter con el índice dado si es != -1 y devolverá el rectángulo delimitador si es necesario.

DrawLabel()

void wxDC::DrawLabel( const wxString & text, const wxRect & rect, int alignment = wxALIGN_LEFT|wxALIGN_TOP, int indexAccel = -1 )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawLine()

void wxDC::DrawLine( const wxPoint & pt1, const wxPoint & pt2 )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawLine()

void wxDC::DrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )

Dibuja una línea desde el primer punto hasta el segundo.

El lápiz actual se utiliza para dibujar la línea. Hay que tener en cuenta que el punto (x2, y2) no es parte de la línea y no es dibujado por esta función (esto es consistente con el comportamiento de muchos otros toolkits).

DrawLines()

void wxDC::DrawLines( const wxPointList * points, wxCoord xoffset = 0, wxCoord yoffset = 0 )

Este método utiliza una lista de /wxPoints, añadiendo la coordenada de desplazamiento opcional.

El programador es responsable de borrar la lista de puntos.

Nota wxPerl: La versión wxPerl de este método acepta como primer parámetro una referencia a un array de objetos /wxPoint.

DrawLines()

void wxDC::DrawLines( int n, const /wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0 )

Dibuja líneas utilizando una matriz de puntos de tamaño n añadiendo la coordenada de desplazamiento opcional.

El lápiz actual se utiliza para dibujar las líneas.

Nota wxPerl: No soportado por wxPerl.

DrawPoint()

void wxDC::DrawPoint(const /wxPoint & pt)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawPoint()

void wxDC::DrawPoint( wxCoord x, wxCoord y )

Dibuja un punto utilizando el color de la pluma actual.

Hay que tener en cuenta que no se utilizan las demás propiedades del lápiz, como la anchura.

DrawPolygon()

void wxDC::DrawPolygon( const wxPointList * points, wxCoord xoffset = 0, wxCoord yoffset = 0, wxPolygonFillMode fill_style = wxODDEVEN_RULE )

Este método dibuja un polígono relleno utilizando una lista de wxPuntos, añadiendo la coordenada de desplazamiento opcional.

El primer y último punto se cierran automáticamente.

El último argumento especifica la regla de relleno: wxODDEVEN_RULE (por defecto) o wxWINDING_RULE.

La pluma actual se utiliza para dibujar el contorno, y el pincel actual para rellenar la forma. El uso de un pincel transparente suprime el relleno.

El programador es responsable de borrar la lista de puntos.

Nota wxPerl: La versión wxPerl de este método acepta como primer parámetro una referencia a un array de objetos /wxPoint.

DrawPolygon()

void wxDC::DrawPolygon( int n, const /wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, wxPolygonFillMode fill_style = wxODDEVEN_RULE )

Dibuja un polígono relleno utilizando una matriz de puntos de tamaño n, añadiendo la coordenada de desplazamiento opcional.

El primer y el último punto se cierran automáticamente.

El último argumento especifica la regla de relleno: wxODDEVEN_RULE (por defecto) o wxWINDING_RULE.

La pluma actual se utiliza para dibujar el contorno, y el pincel actual para rellenar la forma. El uso de un pincel transparente suprime el relleno.

Nota wxPerl: No soportado por wxPerl.

DrawPolyPolygon()

void wxDC::DrawPolyPolygon( int n, const int count[], const /wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, wxPolygonFillMode fill_style = wxODDEVEN_RULE )

Dibuja dos o más polígonos rellenos utilizando una matriz de puntos, añadiendo las coordenadas de desplazamiento opcionales.

Hay que tener en cuenta que para las plataformas que proporcionan una implementación nativa de esta función (Windows y wxDC basado en PostScript actualmente), esto es más eficiente que utilizar DrawPolygon() en un bucle.

n especifica el número de polígonos a dibujar, la matriz count de tamaño n especifica el número de puntos en cada uno de los polígonos en la matriz points.

El último argumento especifica la regla de relleno: wxODDEVEN_RULE (por defecto) o wxWINDING_RULE.

El lápiz actual se utiliza para dibujar el contorno, y el pincel actual para rellenar la forma. El uso de un pincel transparente suprime el relleno.

Los polígonos pueden estar separados o superpuestos. Cada polígono especificado en una llamada a DrawPolyPolygon() debe estar cerrado. A diferencia de los polígonos creados por la función miembro DrawPolygon(), los polígonos creados por este método no se cierran automáticamente.

DrawRectangle()

void wxDC::DrawRectangle( const wxPoint & pt, const wxSize & sz )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawRectangle()

void wxDC::DrawRectangle(const wxRect & rect)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawRectangle()

void wxDC::DrawRectangle( wxCoord x, wxCoord y, wxCoord width, wxCoord height )

Dibuja un rectángulo con la coordenada de la esquina y el tamaño dados.

Normalmente, x e y especifican las coordenadas de la esquina superior izquierda y tanto la anchura como la altura son positivas, sin embargo también se permite que sean negativas, en cuyo caso la coordenada de la esquina correspondiente se refiere a la esquina derecha o inferior en su lugar.

La pluma actual se utiliza para el contorno y el pincel actual para rellenar la forma.

DrawRotatedText()

void wxDC::DrawRotatedText( const wxString & text, const wxPoint & point, double angle )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawRotatedText()

void wxDC::DrawRotatedText( const wxString & text, wxCoord x, wxCoord y, double angle )

Dibuja el texto rotado por un ángulo de grados (los ángulos positivos son en sentido contrario a las agujas del reloj; el ángulo completo es de 360 grados).

Obsérvese que, al igual que con DrawText(), el texto puede contener múltiples líneas separadas por los caracteres de nueva línea ('\n').

Nota: En MSW, esta función sólo permite dibujar fuentes TrueType. En particular, debe utilizarse una fuente distinta de wxNORMAL_FONT, ya que esta última no es una fuente TrueType. wxSWISS_FONT es un ejemplo de fuente que sí lo es.

DrawRoundedRectangle()

void wxDC::DrawRoundedRectangle( const wxPoint & pt, const wxSize & sz, double radius )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawRoundedRectangle()

void wxDC::DrawRoundedRectangle( const wxRect & rect, double radius )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawRoundedRectangle()

void wxDC::DrawRoundedRectangle( wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius )

Dibuja un rectángulo con la esquina superior izquierda y el tamaño dados.

Las esquinas son cuartos de círculo con el radio dado. La pluma actual se utiliza para el contorno y el pincel actual para rellenar la forma.

Si el radio es positivo, se asume que el valor es el radio de la esquina redondeada. Si el radio es negativo, se asume que el valor absoluto es la proporción de la dimensión más pequeña del rectángulo. Esto significa que la esquina puede tener un tamaño razonable en relación con el tamaño del rectángulo, y también evita los extraños efectos X que produce cuando las esquinas son demasiado grandes para el rectángulo.

DrawSpline()

void wxDC::DrawSpline(const wxPointList * points)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

Nota wxPerl: La versión wxPerl de este método acepta como primer parámetro una referencia a un array de objetos wxPoint.

DrawSpline()

void wxDC::DrawSpline( int n, const wxPoint points[] )

Dibuja una spline entre todos los puntos dados utilizando la pluma actual.

El número de puntos debe ser al menos 2 para que se dibuje la spline.

Nota: La curva dibujada no es una curva de interpolación - no pasa por todos los puntos. Puede considerarse una curva de suavizado.

Nota wxPerl: No soportado por wxPerl.

Ejemplo de spline
DrawSpline()

void wxDC::DrawSpline( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord x3, wxCoord y3 )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

Nota wxPerl: No soportado por wxPerl.

DrawText()

void wxDC::DrawText( const wxString & text, const wxPoint & pt )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

DrawText()

void wxDC::DrawText( const wxString & text, wxCoord x, wxCoord y )

Dibuja una cadena de texto en el punto especificado, utilizando la fuente de texto actual y los colores de primer plano y fondo del texto.

Las coordenadas se refieren a la esquina superior izquierda del rectángulo que delimita la cadena. Véase GetTextExtent() para obtener las dimensiones de una cadena de texto, que puede utilizarse para posicionar el texto con mayor precisión y DrawLabel() si necesita alinear la cadena de forma diferente.

A partir de wxWidgets 2.9.2 el parámetro de texto puede ser una cadena multilínea, es decir, contener caracteres de nueva línea, y se renderizará correctamente.

Nota: La función lógica actual es ignorada por esta función.

EndDoc()

void wxDC::EndDoc()

Finaliza un documento (sólo es relevante cuando se imprime en una impresora).

EndPage()

void wxDC::EndPage()

Finaliza la página de un documento (sólo es relevante cuando se imprime).

FloodFill()

bool wxDC::FloodFill( const wxPoint & pt, const wxColour & col, wxFloodFillStyle style = wxFLOOD_SURFACE )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

FloodFill()

bool wxDC::FloodFill( wxCoord x, wxCoord y, const wxColour & colour, wxFloodFillStyle style = wxFLOOD_SURFACE )

Rellena el contexto del dispositivo comenzando desde el punto dado, usando el color actual del pincel, y usando un estilo:

  • wxFLOOD_SURFACE: La inundación se produce hasta que se encuentra un color distinto al dado.
  • wxFLOOD_BORDER: El área a inundar está delimitada por el color dado.

Actualmente este método no está implementado en wxOSX y no hace nada allí.

Valor de retorno

false si la operación ha fallado.

Nota: La implementación actual para plataformas no Windows puede fallar al encontrar los bordes de color si los píxeles no coinciden exactamente con el color. Sin embargo, la función seguirá devolviendo true.

Este método no debería utilizarse con wxPaintDC en plataformas no Windows ya que utiliza GetPixel() internamente y esto puede dar resultados erróneos, especialmente en wxGTK. Si necesita rellenar wxPaintDC, cree un wxMemoryDC temporal, rellénelo y luego dibújelo como un mapa de bits en wxPaintDC. Ver el ejemplo de hacer esto en la muestra de dibujo y la clase wxBufferedPaintDC.

FromDIP()

wxPoint wxDC::FromDIP(const wxPoint & pt) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

FromDIP()

wxSize wxDC::FromDIP(const wxSize & sz) const

Convierte valores de píxel independientes de DPI al valor en píxeles apropiado para el DC.

Ver wxWindow::FromDIP(const wxSize& sz) para más información sobre la conversión de valores de píxel independientes del dispositivo.

FromDIP()

int wxDC::FromDIP(int d) const

Convierte el valor independiente de DPI en píxeles al valor en píxeles apropiado para la CC.

Es lo mismo que la sobrecarga FromDIP(const wxSize& sz), pero asume que la resolución es la misma en dirección horizontal y vertical.

GetAsBitmap()

wxBitmap wxDC::GetAsBitmap(const wxRect * subrect = NULL) const

Si es compatible con la plataforma y el tipo de DC, obtiene el contenido del DC, o un subconjunto del mismo, como un mapa de bits.

GetBackground()

const wxBrush& wxDC::GetBackground() const

Obtiene el pincel utilizado para pintar el fondo.

GetBackgroundMode()

int wxDC::GetBackgroundMode() const

Devuelve el modo de fondo actual: wxBRUSHSTYLE_SOLID o wxBRUSHSTYLE_TRANSPARENT.

GetBrush()

const wxBrush& wxDC::GetBrush() const

Obtiene el pincel actual.

GetCharHeight()

wxCoord wxDC::GetCharHeight() const

Obtiene la altura de los caracteres de la fuente actual.

GetCharWidth()

wxCoord wxDC::GetCharWidth() const

Obtiene la anchura media de los caracteres de la fuente actual.

GetClippingBox()

bool wxDC::GetClippingBox( wxCoord * x, wxCoord * y, wxCoord * width, wxCoord * height ) const

Obtiene el rectángulo que rodea la región de recorte actual.

Si no se ha establecido ninguna región de recorte, esta función devuelve la extensión del contexto del dispositivo.

Observaciones

La región de recorte se da en coordenadas lógicas.

Parámetros
x
Si no es NULL, se rellena con la coordenada horizontal lógica de la esquina superior izquierda de la región de recorte si la función devuelve true o 0 en caso contrario.
y
Si no es NULL, se rellena con la coordenada lógica vertical de la esquina superior izquierda de la región de recorte si la función devuelve verdadero o 0 en caso contrario.
width
Si no es NULL, se rellena con la anchura de la región de recorte si la función devuelve verdadero o con la anchura del contexto del dispositivo en caso contrario.
height
Si no es NULL, se rellena con la altura de la región de recorte si la función devuelve verdadero o la altura del contexto del dispositivo en caso contrario.
Devuelve

true si hay una región de recorte o false si no hay ninguna región de recorte activa (hay que tener en cuenta que este valor de retorno sólo está disponible desde wxWidgets 3.1.2, esta función no devolvía nada en las versiones anteriores).

GetClippingBox()

bool wxDC::GetClippingBox(wxRect & rect) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

GetContentScaleFactor()

double wxDC::GetContentScaleFactor() const

Devuelve el factor utilizado para convertir los píxeles lógicos en físicos.

Devuelve el mismo valor que wxWindow::GetDPIScaleFactor() para los contextos de dispositivo asociados a una ventana y el mismo valor que wxBitmap::GetScaleFactor() para el mapa de bits asociado a wxMemoryDC.

Nota: Hay que tener en cuenta que desde wxWidgets 3.1.6, esta función no devuelve el mismo valor que wxWindow::GetDPIScaleFactor() para los contextos de dispositivo asociados a la ventana. A diferencia del método wxWindow, siempre devuelve el factor de escala efectivo en lugar de devolver siempre 1 en plataformas donde los píxeles lógicos son los mismos que los físicos, como MSW.

GetDepth()

int wxDC::GetDepth() const

Devuelve la profundidad (número de bits/píxel) de este DC.

GetDeviceOrigin()

wxPoint wxDC::GetDeviceOrigin() const

Devuelve el origen actual del dispositivo.

GetFont()

const wxFont& wxDC::GetFont() const

Obtiene la fuente actual.

Hay que tener en cuenta que aunque cada objeto de contexto de dispositivo tiene alguna fuente predeterminada después de la creación, este método devolvería un wxNullFont inicialmente y sólo después de llamar a SetFont() se devuelve una fuente válida.

GetFontMetrics()

wxFontMetrics wxDC::GetFontMetrics() const

Devuelve las distintas características de la fuente.

Este método permite recuperar algunas de las características de la fuente que no devuelve GetTextExtent(), en particular el interlineado interno y la anchura media de los caracteres.

Actualmente este método devuelve resultados correctos sólo bajo wxMSW, en los otros ports el interlineado interno siempre será 0 y el ancho medio de carácter se calculará como el ancho del carácter 'x'.

GetGraphicsContext()

virtual wxGraphicsContext* wxDC::GetGraphicsContext() const

Si está soportado por la plataforma y la implementación de wxDC, este método devolverá el wxGraphicsContext asociado con el DC.

En caso contrario devolverá NULL.

Reimplementado en wxGCDC.

GetHandle()

void* wxDC::GetHandle() const

Devuelve un valor que puede ser usado como un manejador del contexto de dibujo nativo, si este wxDC tiene algo que pueda ser pensado de esa manera.

(No todos lo tienen).

Por ejemplo, en Windows el valor devuelto es un HDC, en macOS es un CGContextRef y en wxGTK será un GdkDrawable. Si el CD es un wxGCDC entonces el valor de retorno será el valor devuelto por wxGraphicsContext::GetNativeContext. Se devuelve un valor de NULL si el DC no tiene nada que se ajuste al concepto de manejador.

GetLayoutDirection()

wxLayoutDirection wxDC::GetLayoutDirection() const

Obtiene la dirección de diseño actual del contexto del dispositivo.

En plataformas donde el diseño RTL está soportado, el valor devuelto será wxLayout_LeftToRight o wxLayout_RightToLeft. Si el diseño RTL no está soportado, el valor de retorno será wxLayout_Default.

GetLogicalFunction()

wxRasterOperationMode wxDC::GetLogicalFunction() const

Obtiene la función lógica actual.

GetLogicalOrigin()

wxPoint wxDC::GetLogicalOrigin() const

Devuelve las coordenadas del punto lógico (0, 0).

GetLogicalOrigin()

void wxDC::GetLogicalOrigin( wxCoord * x, wxCoord * y ) const

Devuelve las coordenadas del punto lógico (0, 0).

GetLogicalScale()

void wxDC::GetLogicalScale( double * x, double * y ) const

Devuelve la escala establecida por la última llamada a SetLogicalScale().

GetMapMode()

wxMappingMode wxDC::GetMapMode() const

Obtiene el modo de asignación actual para el contexto del dispositivo.

GetMultiLineTextExtent()

wxSize wxDC::GetMultiLineTextExtent(const wxString & string) const

Obtiene las dimensiones de la cadena utilizando la fuente actualmente seleccionada.

string es la cadena de texto a medir.

Valor de retorno

La extensión del texto como un objeto wxSize.

Nota: Esta función funciona tanto con cadenas de una sola línea como con cadenas de varias líneas.

Nota wxPerl: No soportado por wxPerl.

GetMultiLineTextExtent()

void wxDC::GetMultiLineTextExtent( const wxString & string, wxCoord * w, wxCoord * h, wxCoord * heightLine = NULL, const wxFont * font = NULL ) const

Obtiene las dimensiones de la cadena utilizando la fuente actualmente seleccionada.

string es la cadena de texto a medir, heightLine, si no es NULL, es donde almacenar la altura de una sola línea.

La extensión del texto se establece en los punteros w y h dados.

Si el parámetro opcional font se especifica y es válido, entonces se utiliza para el cálculo de la extensión del texto, de lo contrario se utiliza la fuente seleccionada actualmente.

Si la cadena está vacía, su extensión horizontal es 0 pero, por comodidad al utilizar esta función para asignar espacio suficiente para una cadena posiblemente multilínea, su extensión vertical es la misma que la altura de una línea de texto vacía. Hay que tener en cuenta que este comportamiento difiere del de GetTextExtent().

Nota: Esta función funciona tanto con cadenas de una sola línea como con cadenas de varias líneas.

Nota wxPerl: En wxPerl este método se implementa como GetMultiLineTextExtent(string, font = undef) devolviendo una lista de 3 elementos (anchura, altura, altura_línea)

GetPartialTextExtents()

bool wxDC::GetPartialTextExtents( const wxString & text, wxArrayInt & widths ) const

Rellena la matriz widths con las anchuras desde el principio del texto hasta el carácter correspondiente del texto.

La versión genérica simplemente construye un total de los anchos de cada carácter usando GetTextExtent(), sin embargo si las diferentes plataformas tienen una función API nativa que es más rápida o más precisa que la implementación genérica, entonces debería usarse en su lugar.

Nota de wxPerl: En wxPerl este método sólo toma el parámetro text y devuelve las anchuras como una lista de enteros.

GetPen()

const wxPen& wxDC::GetPen() const

Obtiene la pluma actual.

GetPixel()

bool wxDC::GetPixel( wxCoord x, wxCoord y, wxColour * colour ) const

Obtiene en color el color en la ubicación especificada.

Este método no está disponible para wxPostScriptDC o wxMetafileDC ni para ningún DC en el puerto wxOSX y simplemente devuelve false allí.

Nota: Establecer un píxel puede hacerse utilizando DrawPoint().

Este método no debería utilizarse con wxPaintDC ya que acceder al DC mientras se dibuja puede dar lugar a resultados inesperados, especialmente en wxGTK.

GetPPI()

wxSize wxDC::GetPPI() const

Devuelve la resolución del dispositivo en píxeles por pulgada.

GetSize()

wxSize wxDC::GetSize() const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

GetSize()

void wxDC::GetSize( wxCoord * width, wxCoord * height ) const

Obtiene la extensión horizontal y vertical de este contexto de dispositivo en unidades de dispositivo.

Se puede utilizar para escalar gráficos para que quepan en la página.

Por ejemplo, si maxX y maxY representan los valores máximos de 'pixel' horizontal y vertical utilizados en su aplicación, el siguiente código escalará el gráfico para que quepa en la página de la impresora:

wxCoord w, h;
dc.GetSize(&w, &h);
double scaleX = (double)(maxX / w);
double scaleY = (double)(maxY / h);
dc.SetUserScale(min(scaleX, scaleY),min(scaleX, scaleY));

wxPerl Nota: En wxPerl hay dos métodos en lugar de un único método sobrecargado:

  • GetSize(): devuelve un objeto Wx::Size.
  • GetSizeWH(): devuelve una lista de 2 elementos (anchura, altura).
GetSizeMM()

wxSize wxDC::GetSizeMM() const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

GetSizeMM()

void wxDC::GetSizeMM( wxCoord * width, wxCoord * height ) const

Devuelve la resolución horizontal y vertical en milímetros.

GetTextBackground()

const wxColour& wxDC::GetTextBackground() const

Obtiene el color de fondo actual del texto.

GetTextExtent()

wxSize wxDC::GetTextExtent(const wxString & string) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

Nota wxPerl: No soportado por wxPerl.

GetTextExtent()

void wxDC::GetTextExtent( const wxString & string, wxCoord * w, wxCoord * h, wxCoord * descent = NULL, wxCoord * externalLeading = NULL, const wxFont * font = NULL ) const

Obtiene las dimensiones de la cadena utilizando la fuente actualmente seleccionada.

string es la cadena de texto a medir, descent es la dimensión desde la línea base de la fuente hasta la parte inferior del descendente, y externalLeading es cualquier espacio vertical extra añadido a la fuente por el diseñador de la fuente (normalmente es cero).

La extensión del texto se devuelve en punteros w y h o como un objeto wxSize dependiendo de la versión de esta función que se utilice.

Si el parámetro opcional font está especificado y es válido, entonces se utiliza para el cálculo de la extensión del texto. En caso contrario, se utilizará la fuente seleccionada en ese momento.

Si la cadena está vacía, su extensión es 0 en ambas direcciones, como es de esperar.

Nota; Esta función sólo funciona con cadenas de una sola línea.

Nota wxPerl: En wxPerl este método se implementa como GetTextExtent(string, font = undef) devolviendo una lista de 4 elementos (width, height, descent, externalLeading)

GetTextForeground()

const wxColour& wxDC::GetTextForeground() const

Obtiene el color de primer plano del texto actual.

GetTransformMatrix()

wxAffineMatrix2D wxDC::GetTransformMatrix() const

Devuelve la matriz de transformación utilizada por este contexto de dispositivo.

Por defecto, la matriz de transformación es la matriz de identidad.

GetUserScale()

void wxDC::GetUserScale( double * x, double * y ) const

Obtiene el factor de escala de usuario actual.

Nota wxPerl: En wxPerl este método no toma argumentos y devuelve un array de dos elementos (x, y).

GradientFillConcentric()

void wxDC::GradientFillConcentric( const wxRect & rect, const wxColour & initialColour, const wxColour & destColour )

Rellena el área especificada por rect con un degradado radial, comenzando por initialColour en el centro del círculo y desvaneciéndose hasta destColour en el exterior del círculo.

El círculo se sitúa en el centro de rect.

Nota: Actualmente esta función es muy lenta, no la utilices para dibujar en tiempo real.

GradientFillConcentric()

void wxDC::GradientFillConcentric( const wxRect & rect, const wxColour & initialColour, const wxColour & destColour, const wxPoint & circleCenter )

Rellena el área especificada por rect con un degradado radial, comenzando por initialColour en el centro del círculo y desvaneciéndose hasta destColour en el exterior del círculo.

circleCenter son las coordenadas relativas del centro del círculo en el rect especificado.

Nota: Actualmente esta función es muy lenta, no utilizarla para dibujar en tiempo real.

GradientFillLinear()

void wxDC::GradientFillLinear( const wxRect & rect, const wxColour & initialColour, const wxColour & destColour, wxDirection nDirection = wxRIGHT )

Rellena el área especificada por rect con un gradiente lineal, comenzando por el initialColour y desvaneciéndose hasta el destColour.

El valor nDirection especifica la dirección del cambio de color, por defecto se usa el initialColour en la parte izquierda del rectángulo y el destColour en la derecha.

IsOk()

bool wxDC::IsOk() const

Devuelve true si se puede utilizar el DC.

LogicalToDevice()

wxPoint wxDC::LogicalToDevice(const wxPoint & pt) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

LogicalToDevice()

wxPoint wxDC::LogicalToDevice( wxCoord x, wxCoord y ) const

Convierte las coordenadas lógicas (x, y) en coordenadas de dispositivo teniendo en cuenta todas las transformaciones aplicadas, como el modo de mapeo actual, los factores de escala, el origen del dispositivo, la orientación de los ejes y la transformación afín.

LogicalToDeviceRel()

wxSize wxDC::LogicalToDeviceRel(const wxSize & dim) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

LogicalToDeviceRel()

wxSize wxDC::LogicalToDeviceRel( int x, int y ) const

Convierte las coordenadas lógicas x, y en coordenadas relativas del dispositivo teniendo en cuenta todas las transformaciones aplicadas como el modo de mapeo actual, factores de escala, transformación afín.

Utilizarlo para convertir distancias como, por ejemplo, anchura y altura.

LogicalToDeviceX()

wxCoord wxDC::LogicalToDeviceX(wxCoord x) const

Convierte la coordenada X lógica en coordenada de dispositivo, utilizando el modo de mapeado actual, el factor de escala del usuario, el origen del dispositivo y la orientación del eje.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

LogicalToDeviceXRel()

wxCoord wxDC::LogicalToDeviceXRel(wxCoord x) const

Convierte la coordenada X lógica en coordenada relativa del dispositivo, utilizando el modo de mapeado actual y el factor de escala del usuario, pero ignorando la orientación del eje.

Utilizarlo para convertir una distancia horizontal como, por ejemplo, una anchura.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

LogicalToDeviceY()

wxCoord wxDC::LogicalToDeviceY(wxCoord y) const

Convierte la coordenada Y lógica en coordenada de dispositivo, utilizando el modo de mapeado actual, el factor de escala del usuario, el origen del dispositivo y la orientación del eje.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

LogicalToDeviceYRel()

wxCoord wxDC::LogicalToDeviceYRel(wxCoord y) const

Convierte la coordenada Y lógica en coordenada relativa del dispositivo, utilizando el modo de mapeado actual y el factor de escala del usuario, pero ignorando la orientación del eje.

Utilizarlo para convertir una distancia horizontal como, por ejemplo, una anchura.

Nota: La transformación afín aplicada al sistema de coordenadas con SetTransformMatrix() no se tiene en cuenta.

MaxX()

wxCoord wxDC::MaxX() const

Obtiene la extensión horizontal máxima utilizada en los comandos de dibujo hasta el momento.

MaxY()

wxCoord wxDC::MaxY() const

Obtiene la extensión vertical máxima utilizada en los comandos de dibujo hasta el momento.

MinX()

wxCoord wxDC::MinX() const

Obtiene la extensión horizontal mínima utilizada en los comandos de dibujo hasta el momento.

MinY()

wxCoord wxDC::MinY() const

Obtiene la extensión vertical mínima utilizada en los comandos de dibujo hasta el momento.

ResetBoundingBox()

void wxDC::ResetBoundingBox()

Restablece el cuadro delimitador: después de una llamada a esta función, el cuadro delimitador no contiene nada.

ResetTransformMatrix()

void wxDC::ResetTransformMatrix()

Revierte la matriz de transformación a matriz identidad.

SetAxisOrientation()

void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp )

Establece la orientación de los ejes x e y (es decir, la dirección desde los valores más bajos a los más altos del eje).

La orientación por defecto es eje x de izquierda a derecha y eje y de arriba abajo.

Parámetros
xLeftRight
True para establecer la orientación del eje x a la orientación natural de izquierda a derecha, false para invertirla.
yBottomUp
True para establecer la orientación del eje y a la orientación natural de abajo hacia arriba, false para invertirla.
SetBackground()

void wxDC::SetBackground(const wxBrush & brush)

Establece el pincel de fondo actual para el DC.

SetBackgroundMode()

void wxDC::SetBackgroundMode(int mode)

Cambiar el modo de fondo actual.

Este ajuste determina si el texto se dibujará con un color de fondo o no.

Por defecto es wxBRUSHSTYLE_TRANSPARENT, es decir, el fondo del texto no se dibuja.Parámetros

mode
Uno de wxBRUSHSTYLE_SOLID y wxBRUSHSTYLE_TRANSPARENT.
SetBrush()

void wxDC::SetBrush(const wxBrush & brush)

Establece el pincel actual para el DC.

Si el argumento es wxNullBrush (u otro pincel inválido; ver wxBrush::IsOk), el pincel actual se selecciona fuera del contexto del dispositivo (dejando wxDC sin ningún pincel válido), permitiendo destruir el pincel actual de forma segura.

SetClippingRegion()

void wxDC::SetClippingRegion( const wxPoint & pt, const wxSize & sz )

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

SetClippingRegion()

void wxDC::SetClippingRegion(const wxRect & rect)

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

SetClippingRegion()

void wxDC::SetClippingRegion( wxCoord x, wxCoord y, wxCoord width, wxCoord height )

Establece la región de recorte para este contexto de dispositivo en la intersección de la región dada descrita por los parámetros de este método y la región de recorte establecida previamente.

La región de recorte es un área en la que el dibujo está restringido. Los posibles usos de la región de recorte son el recorte de texto o la aceleración del redibujado de ventanas cuando sólo está dañada un área conocida de la pantalla.

Observaciones
  • La región de recorte debe indicarse en coordenadas lógicas.
  • La llamada a esta función sólo puede hacer que la región de recorte sea más pequeña, nunca más grande.
  • Se debe llamar primero a DestroyClippingRegion() si se desea establecer la región de recorte exactamente en la región especificada.
  • Si la región de recorte resultante está vacía, todo el dibujo en el DC se recorta (todos los cambios realizados por las operaciones de dibujo se enmascaran).
SetDeviceClippingRegion()

void wxDC::SetDeviceClippingRegion(const wxRegion & region)

Establece la región de recorte para este contexto de dispositivo.

A diferencia de SetClippingRegion(), esta función trabaja con coordenadas físicas y no con las lógicas.

SetDeviceOrigin()

void wxDC::SetDeviceOrigin( wxCoord x, wxCoord y )

Establece el origen del dispositivo (es decir, el origen en píxeles una vez aplicada la escala).

Esta función puede ser útil en las operaciones de impresión de Windows para colocar un gráfico en una página.

SetFont()

void wxDC::SetFont(const wxFont & font)

Establece la fuente actual para el DC.

El parámetro de fuente debe ser válido, aunque en el port wxMSW (solamente) también se acepta el argumento wxNullFont y restablece la fuente del contexto del dispositivo al valor predeterminado utilizado por el sistema (que no suele ser útil).

SetGraphicsContext()

virtual void wxDC::SetGraphicsContext(wxGraphicsContext * ctx)

Asocia un wxGraphicsContext con el DC.

Ignorado si no está soportado por la implementación específica de wxDC. Es poco probable que esto tenga que ser utilizado en el código de la aplicación.

wxGCDC.

SetLayoutDirection()

void wxDC::SetLayoutDirection(wxLayoutDirection dir)

Establece la dirección de diseño actual para el contexto del dispositivo.

Parámetros
dir
Puede ser wxLayout_Default, wxLayout_LeftToRight o wxLayout_RightToLeft.

SetLogicalFunction()

void wxDC::SetLogicalFunction(wxRasterOperationMode function)

Establece la función lógica actual para el contexto del dispositivo.

Nota: Esta función no está totalmente soportada en todos los ports, debido a las limitaciones del modelo de dibujo subyacente. En particular, wxINVERT que se utilizaba comúnmente para dibujar bandas elásticas u otros contornos en movimiento en el pasado, no es, y no será, soportado por wxGTK3 y wxMac. La alternativa sugerida es dibujar temporalmente los objetos normalmente y refrescar la ventana (parte afectada de la ventana) para eliminarlos más tarde.

Determina cómo un píxel de origen (de un color de lápiz o pincel, o del contexto de dispositivo de origen si se utiliza Blit()) se combina con un píxel de destino en el contexto de dispositivo actual. Esta función no afecta al dibujo de texto.

Ver los valores del enumerado wxRasterOperationMode para más información.

El valor por defecto es wxCOPY, que simplemente dibuja con el color actual. Los demás combinan el color actual y el fondo mediante una operación lógica.

SetLogicalOrigin()

void wxDC::SetLogicalOrigin( wxCoord x, wxCoord y )

Cambia el desplazamiento utilizado para traducir las coordenadas wxDC.

SetLogicalScale()

void wxDC::SetLogicalScale( double x, double y )

Establece la escala a utilizar para traducir las coordenadas wxDC a los píxeles físicos.

El efecto de llamar a esta función es similar al de llamar a SetUserScale().

SetMapMode()

void wxDC::SetMapMode(wxMappingMode mode)

El modo de mapeo del contexto de dispositivo define la unidad de medida utilizada para convertir unidades lógicas en unidades de dispositivo.

Hay que tener en cuenta que en X, el dibujo de texto no se maneja de forma consistente con el modo de mapeo; una fuente siempre se especifica en tamaño de punto. Sin embargo, estableciendo la escala de usuario (ver SetUserScale()) se escala el texto apropiadamente. En Windows, siempre se utilizan fuentes TrueType escalables; en X, los resultados dependen de la disponibilidad de fuentes, pero normalmente se encuentra una coincidencia razonable.

El origen de coordenadas está siempre en la parte superior izquierda de la pantalla/impresora.

Al dibujar en un contexto de dispositivo de impresión de Windows se utiliza el modo de mapeado actual, pero el modo de mapeado se ignora actualmente para la salida PostScript.

SetPalette()

void wxDC::SetPalette(const wxPalette & palette)

Si se trata de un DC de ventana o de memoria, asigna la paleta dada a la ventana o mapa de bits asociado al DC.

Si el argumento es wxNullPalette, se selecciona la paleta actual fuera del contexto del dispositivo y se restaura la paleta original.

SetPen()

void wxDC::SetPen(const wxPen & pen)

Establece el lápiz actual para el DC.

Si el argumento es wxNullPen (u otra pluma no válida; ver wxPen::IsOk), la pluma actual se selecciona fuera del contexto del dispositivo (dejando a wxDC sin ninguna pluma válida), permitiendo destruir la pluma actual de forma segura.

Ver también

wxMemoryDC para la interpretación de los colores cuando se dibuja en un mapa de bits monocromo.

SetTextBackground()

void wxDC::SetTextBackground(const wxColour & colour)

Establece el color de fondo del texto actual para el DC.

SetTextForeground()

void wxDC::SetTextForeground(const wxColour & colour)

Establece el color de primer plano del texto actual para el DC.

wxMemoryDC para la interpretación de los colores cuando se dibuja en un mapa de bits monocromo.

SetTransformMatrix()

bool wxDC::SetTransformMatrix(const wxAffineMatrix2D & matrix)

Establece la matriz de transformación.

Si la matriz de transformación está soportada en el sistema actual, la matriz especificada se utilizará para transformar entre wxDC y las coordenadas físicas. De lo contrario, la función devuelve false y no cambia la asignación de coordenadas.

SetUserScale()

void wxDC::SetUserScale( double xScale, double yScale )

Establece el factor de escala del usuario, útil para aplicaciones que requieren "zoom".

StartDoc()

bool wxDC::StartDoc(const wxString & message)

Inicia un documento (sólo relevante cuando se imprime en una impresora).

message es un mensaje para mostrar mientras se imprime.

StartPage()

void wxDC::StartPage()

Inicia una página de documento (sólo relevante cuando se imprime en una impresora).

StretchBlit()

bool wxDC::StretchBlit( wxCoord xdest, wxCoord ydest, wxCoord dstWidth, wxCoord dstHeight, wxDC * source, wxCoord xsrc, wxCoord ysrc, wxCoord srcWidth, wxCoord srcHeight, wxRasterOperationMode logicalFunc = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord )

Copia de un DC de origen a este DC posiblemente cambiando la escala.

A diferencia de Blit(), este método permite especificar diferentes tamaños de región de origen y destino, lo que significa que puede estirar o encoger la región mientras se copia. Se puede conseguir lo mismo cambiando la escala del DC origen o destino, pero llamar a este método es más sencillo y también puede ser más eficiente si la plataforma proporciona una implementación nativa del mismo.

El significado de sus otros parámetros es el mismo que con Blit(), en particular todas las coordenadas de origen se interpretan utilizando el sistema de coordenadas del DC de origen, es decir, se ven afectadas por su escala, traslación del origen y dirección del eje.

Parámetros
xdest
Posición x del contexto del dispositivo de destino.
ydest
Posición y del contexto del dispositivo de destino.
dstWidth
Anchura del área de destino.
dstHeight
Altura del área de destino.
source
Contexto del dispositivo de origen.
xsrc
Posición x del contexto del dispositivo de origen.
ysrc
Posición y del contexto del dispositivo fuente.
srcWidth
Anchura del área de origen que se va a copiar.
srcHeight
Altura del área de origen que se va a copiar.
logicalFunc
Función lógica a utilizar, ver SetLogicalFunction().
useMask

Si es true, Blit realiza un blit transparente utilizando la máscara asociada al mapa de bits seleccionado en el contexto del dispositivo de origen. La implementación de Windows hace lo siguiente si no se puede utilizar MaskBlt:

  1. Crea un mapa de bits temporal y copia en él el área de destino.
  2. Copia el área de origen en el mapa de bits temporal utilizando la función lógica especificada.
  3. Establece el área enmascarada en el mapa de bits temporal en NEGRO uniendo el mapa de bits de máscara con el mapa de bits temporal con el color de primer plano establecido en BLANCO y el color de fondo establecido en NEGRO.
  4. Establece el área sin máscara en el área de destino en NEGRO uniendo el mapa de bits de máscara con el área de destino con el color de primer plano establecido en NEGRO y el color de fondo establecido en BLANCO.
  5. Une el mapa de bits temporal con el área de destino.
  6. Elimina el mapa de bits temporal.

Esta secuencia de operaciones garantiza que el área transparente del origen no tiene por qué ser negra, y admite funciones lógicas.

Nota: en Windows, el blitting con máscaras puede acelerarse considerablemente compilando wxWidgets con la opción wxUSE_DC_CACHEING activada. También se puede influir en si se utiliza MaskBlt o el código explícito de máscara, utilizando wxSystemOptions y estableciendo la opción no-maskblt a 1.

xsrcMask
Posición x de origen en la máscara. Si tanto xsrcMask como ysrcMask son wxDefaultCoord, se asumirá xsrc e ysrc como posición de origen de la máscara. Actualmente sólo se implementa en Windows.
ysrcMask
Posición y de origen en la máscara. Si tanto xsrcMask como ysrcMask son wxDefaultCoord, se asumirán xsrc e ysrc para la posición de origen de la máscara. Actualmente sólo se implementa en Windows.

Hay soporte parcial para Blit() en wxPostScriptDC, bajo X.

Ver wxMemoryDC para el uso típico.

ToDIP()

wxPoint wxDC::ToDIP(const wxPoint & pt) const

Esta es una función miembro sobrecargada, proporcionada por conveniencia. Sólo difiere de la función anterior en los argumentos que acepta.

ToDIP()

wxSize wxDC::ToDIP(const wxSize & sz) const

Convierte los valores de píxel del DC actual a valores de píxel independientes de DPI.

Ver wxWindow::ToDIP(const wxSize& sz) para más información sobre la conversión de valores de píxel independientes del dispositivo.

ToDIP()

int wxDC::ToDIP(int d) const

Convierte los valores de píxel del DC actual a valores de píxel independientes de DPI.

Es lo mismo que la sobrecarga ToDIP(const wxSize& sz), pero asume que la resolución es la misma en dirección horizontal y vertical.

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject.