| Version: 3.0.2

- Main Page
- Related Pages
- Categories
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | List of all members
wxMetafileDC Class Reference
Device Contexts

`#include <wx/metafile.h>`

Inheritance diagram for wxMetafileDC:
[legend]

## Detailed Description

This is a type of device context that allows a metafile object to be created (Windows only), and has most of the characteristics of a normal wxDC.

The wxMetafileDC::Close member must be called after drawing into the device context, to return a metafile. The only purpose for this at present is to allow the metafile to be copied to the clipboard (see wxMetafile).

Adding metafile capability to an application should be easy if you already write to a wxDC; simply pass the wxMetafileDC to your drawing function instead. You may wish to conditionally compile this code so it is not compiled under X (although no harm will result if you leave it in).

Note that a metafile saved to disk is in standard Windows metafile format, and cannot be imported into most applications. To make it importable, call the function wxMakeMetafilePlaceable after closing your disk-based metafile device context.

##

Library: wxCore
Category: Device Contexts

See Also
  wxMetafile, wxDC

## Public Member Functions
| wxMetafileDC (const wxString &filename=wxEmptyString)
| Constructor.
| ~wxMetafileDC ()
| Destructor.
wxMetafile * | Close ()
| This must be called after the device context is finished with.
Public Member Functions inherited from wxDC
void | CopyAttributes (const wxDC &dc)
| Copy attributes from another DC.
int | GetDepth () const
| Returns the depth (number of bits/pixel) of this DC.
wxPoint | GetDeviceOrigin () const
| Returns the current device origin.
wxRasterOperationMode | GetLogicalFunction () const
| Gets the current logical function.
wxMappingMode | GetMapMode () const
| Gets the current mapping mode for the device context.
bool | GetPixel (wxCoord x, wxCoord y, wxColour *colour) const
| Gets in colour the colour at the specified location.
wxSize | GetPPI () const
| Returns the resolution of the device in pixels per inch.
void | GetSize (wxCoord *width, wxCoord *height) const
| Gets the horizontal and vertical extent of this device context in device units.
wxSize | GetSize () const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | GetSizeMM (wxCoord *width, wxCoord *height) const
| Returns the horizontal and vertical resolution in millimetres.
wxSize | GetSizeMM () const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | GetUserScale (double *x, double *y) const
| Gets the current user scale factor.
bool | IsOk () const
| Returns true if the DC is ok to use.
void | SetAxisOrientation (bool xLeftRight, bool yBottomUp)
| Sets the x and y axis orientation (i.e. the direction from lowest to highest values on the axis).
void | SetDeviceOrigin (wxCoord x, wxCoord y)
| Sets the device origin (i.e. the origin in pixels after scaling has been applied).
void | SetLogicalFunction (wxRasterOperationMode function)
| Sets the current logical function for the device context.
void | SetMapMode (wxMappingMode mode)
| The mapping mode of the device context defines the unit of measurement used to convert logical units to device units.
void | SetPalette (const wxPalette &palette)
| If this is a window DC or memory DC, assigns the given palette to the window or bitmap associated with the DC.
void | SetUserScale (double xScale, double yScale)
| Sets the user scaling factor, useful for applications which require 'zooming'.
void * | GetHandle () const
| Returns a value that can be used as a handle to the native drawing context, if this wxDC has something that could be thought of in that way.
wxBitmap | GetAsBitmap (const wxRect *subrect=NULL) const
| If supported by the platform and the type of DC, fetch the contents of the DC, or a subset of it, as a bitmap.
void | SetLogicalScale (double x, double y)
void | GetLogicalScale (double *x, double *y) const
void | SetLogicalOrigin (wxCoord x, wxCoord y)
void | GetLogicalOrigin (wxCoord *x, wxCoord *y) const
wxPoint | GetLogicalOrigin () const
wxCoord | DeviceToLogicalX (wxCoord x) const
| Convert device X coordinate to logical coordinate, using the current mapping mode, user scale factor, device origin and axis orientation.
wxCoord | DeviceToLogicalXRel (wxCoord x) const
| Convert device X coordinate to relative logical coordinate, using the current mapping mode and user scale factor but ignoring the axis orientation.
wxCoord | DeviceToLogicalY (wxCoord y) const
| Converts device Y coordinate to logical coordinate, using the current mapping mode, user scale factor, device origin and axis orientation.
wxCoord | DeviceToLogicalYRel (wxCoord y) const
| Convert device Y coordinate to relative logical coordinate, using the current mapping mode and user scale factor but ignoring the axis orientation.
wxCoord | LogicalToDeviceX (wxCoord x) const
| Converts logical X coordinate to device coordinate, using the current mapping mode, user scale factor, device origin and axis orientation.
wxCoord | LogicalToDeviceXRel (wxCoord x) const
| Converts logical X coordinate to relative device coordinate, using the current mapping mode and user scale factor but ignoring the axis orientation.
wxCoord | LogicalToDeviceY (wxCoord y) const
| Converts logical Y coordinate to device coordinate, using the current mapping mode, user scale factor, device origin and axis orientation.
wxCoord | LogicalToDeviceYRel (wxCoord y) const
| Converts logical Y coordinate to relative device coordinate, using the current mapping mode and user scale factor but ignoring the axis orientation.
void | Clear ()
| Clears the device context using the current background brush.
void | DrawArc (wxCoord xStart, wxCoord yStart, wxCoord xEnd, wxCoord yEnd, wxCoord xc, wxCoord yc)
| Draws an arc from the given start to the given end point.
void | DrawArc (const wxPoint &ptStart, const wxPoint &ptEnd, const wxPoint &centre)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawBitmap (const wxBitmap &bitmap, wxCoord x, wxCoord y, bool useMask=false)
| Draw a bitmap on the device context at the specified point.
void | DrawBitmap (const wxBitmap &bmp, const wxPoint &pt, bool useMask=false)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawCheckMark (wxCoord x, wxCoord y, wxCoord width, wxCoord height)
| Draws a check mark inside the given rectangle.
void | DrawCheckMark (const wxRect &rect)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawCircle (wxCoord x, wxCoord y, wxCoord radius)
| Draws a circle with the given centre and radius.
void | DrawCircle (const wxPoint &pt, wxCoord radius)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawEllipse (wxCoord x, wxCoord y, wxCoord width, wxCoord height)
| Draws an ellipse contained in the rectangle specified either with the given top left corner and the given size or directly.
void | DrawEllipse (const wxPoint &pt, const wxSize &size)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawEllipse (const wxRect &rect)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawEllipticArc (wxCoord x, wxCoord y, wxCoord width, wxCoord height, double start, double end)
| Draws an arc of an ellipse.
void | DrawEllipticArc (const wxPoint &pt, const wxSize &sz, double sa, double ea)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawIcon (const wxIcon &icon, wxCoord x, wxCoord y)
| Draw an icon on the display (does nothing if the device context is PostScript).
void | DrawIcon (const wxIcon &icon, const wxPoint &pt)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawLabel (const wxString &text, const wxBitmap &bitmap, const wxRect &rect, int alignment=wxALIGN_LEFT|wxALIGN_TOP, int indexAccel=-1, wxRect *rectBounding=NULL)
| Draw optional bitmap and the text into the given rectangle and aligns it as specified by alignment parameter; it also will emphasize the character with the given index if it is != -1 and return the bounding rectangle if required.
void | DrawLabel (const wxString &text, const wxRect &rect, int alignment=wxALIGN_LEFT|wxALIGN_TOP, int indexAccel=-1)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawLine (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
| Draws a line from the first point to the second.
void | DrawLine (const wxPoint &pt1, const wxPoint &pt2)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawLines (int n, const wxPoint points[], wxCoord xoffset=0, wxCoord yoffset=0)
| Draws lines using an array of points of size n adding the optional offset coordinate.
void | DrawLines (const wxPointList *points, wxCoord xoffset=0, wxCoord yoffset=0)
| This method uses a list of wxPoints, adding the optional offset coordinate.
void | DrawPoint (wxCoord x, wxCoord y)
| Draws a point using the color of the current pen.
void | DrawPoint (const wxPoint &pt)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawPolygon (int n, const wxPoint points[], wxCoord xoffset=0, wxCoord yoffset=0, wxPolygonFillMode fill_style=wxODDEVEN_RULE)
| Draws a filled polygon using an array of points of size n, adding the optional offset coordinate.
void | DrawPolygon (const wxPointList *points, wxCoord xoffset=0, wxCoord yoffset=0, wxPolygonFillMode fill_style=wxODDEVEN_RULE)
| This method draws a filled polygon using a list of wxPoints, adding the optional offset coordinate.
void | DrawPolyPolygon (int n, const int count[], const wxPoint points[], wxCoord xoffset=0, wxCoord yoffset=0, wxPolygonFillMode fill_style=wxODDEVEN_RULE)
| Draws two or more filled polygons using an array of points, adding the optional offset coordinates.
void | DrawRectangle (wxCoord x, wxCoord y, wxCoord width, wxCoord height)
| Draws a rectangle with the given top left corner, and with the given size.
void | DrawRectangle (const wxPoint &pt, const wxSize &sz)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawRectangle (const wxRect &rect)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawRotatedText (const wxString &text, wxCoord x, wxCoord y, double angle)
| Draws the text rotated by angle degrees (positive angles are counterclockwise; the full angle is 360 degrees).
void | DrawRotatedText (const wxString &text, const wxPoint &point, double angle)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawRoundedRectangle (wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius)
| Draws a rectangle with the given top left corner, and with the given size.
void | DrawRoundedRectangle (const wxPoint &pt, const wxSize &sz, double radius)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawRoundedRectangle (const wxRect &rect, double radius)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawSpline (int n, const wxPoint points[])
| Draws a spline between all given points using the current pen.
void | DrawSpline (const wxPointList *points)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawSpline (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord x3, wxCoord y3)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DrawText (const wxString &text, wxCoord x, wxCoord y)
| Draws a text string at the specified point, using the current text font, and the current text foreground and background colours.
void | DrawText (const wxString &text, const wxPoint &pt)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | GradientFillConcentric (const wxRect &rect, const wxColour &initialColour, const wxColour &destColour)
| Fill the area specified by rect with a radial gradient, starting from initialColour at the centre of the circle and fading to destColour on the circle outside.
void | GradientFillConcentric (const wxRect &rect, const wxColour &initialColour, const wxColour &destColour, const wxPoint &circleCenter)
| Fill the area specified by rect with a radial gradient, starting from initialColour at the centre of the circle and fading to destColour on the circle outside.
void | GradientFillLinear (const wxRect &rect, const wxColour &initialColour, const wxColour &destColour, wxDirection nDirection=wxRIGHT)
| Fill the area specified by rect with a linear gradient, starting from initialColour and eventually fading to destColour.
bool | FloodFill (wxCoord x, wxCoord y, const wxColour &colour, wxFloodFillStyle style=wxFLOOD_SURFACE)
| Flood fills the device context starting from the given point, using the current brush colour, and using a style:
bool | FloodFill (const wxPoint &pt, const wxColour &col, wxFloodFillStyle style=wxFLOOD_SURFACE)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | CrossHair (wxCoord x, wxCoord y)
| Displays a cross hair using the current pen.
void | CrossHair (const wxPoint &pt)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | DestroyClippingRegion ()
| Destroys the current clipping region so that none of the DC is clipped.
void | GetClippingBox (wxCoord *x, wxCoord *y, wxCoord *width, wxCoord *height) const
| Gets the rectangle surrounding the current clipping region.
void | SetClippingRegion (wxCoord x, wxCoord y, wxCoord width, wxCoord height)
| Sets the clipping region for this device context to the intersection of the given region described by the parameters of this method and the previously set clipping region.
void | SetClippingRegion (const wxPoint &pt, const wxSize &sz)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | SetClippingRegion (const wxRect &rect)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | SetDeviceClippingRegion (const wxRegion &region)
| Sets the clipping region for this device context.
wxCoord | GetCharHeight () const
| Gets the character height of the currently set font.
wxCoord | GetCharWidth () const
| Gets the average character width of the currently set font.
wxFontMetrics | GetFontMetrics () const
| Returns the various font characteristics.
void | GetMultiLineTextExtent (const wxString &string, wxCoord *w, wxCoord *h, wxCoord *heightLine=NULL, const wxFont *font=NULL) const
| Gets the dimensions of the string using the currently selected font.
wxSize | GetMultiLineTextExtent (const wxString &string) const
| Gets the dimensions of the string using the currently selected font.
bool | GetPartialTextExtents (const wxString &text, wxArrayInt &widths) const
| Fills the widths array with the widths from the beginning of text to the corresponding character of text.
void | GetTextExtent (const wxString &string, wxCoord *w, wxCoord *h, wxCoord *descent=NULL, wxCoord *externalLeading=NULL, const wxFont *font=NULL) const
| Gets the dimensions of the string using the currently selected font.
wxSize | GetTextExtent (const wxString &string) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
int | GetBackgroundMode () const
| Returns the current background mode: `wxSOLID` or `wxTRANSPARENT`.
const wxFont & | GetFont () const
| Gets the current font.
wxLayoutDirection | GetLayoutDirection () const
| Gets the current layout direction of the device context.
const wxColour & | GetTextBackground () const
| Gets the current text background colour.
const wxColour & | GetTextForeground () const
| Gets the current text foreground colour.
void | SetBackgroundMode (int mode)
| mode may be one of `wxSOLID` and `wxTRANSPARENT`.
void | SetFont (const wxFont &font)
| Sets the current font for the DC.
void | SetTextBackground (const wxColour &colour)
| Sets the current text background colour for the DC.
void | SetTextForeground (const wxColour &colour)
| Sets the current text foreground colour for the DC.
void | SetLayoutDirection (wxLayoutDirection dir)
| Sets the current layout direction for the device context.
void | CalcBoundingBox (wxCoord x, wxCoord y)
| Adds the specified point to the bounding box which can be retrieved with MinX(), MaxX() and MinY(), MaxY() functions.
wxCoord | MaxX () const
| Gets the maximum horizontal extent used in drawing commands so far.
wxCoord | MaxY () const
| Gets the maximum vertical extent used in drawing commands so far.
wxCoord | MinX () const
| Gets the minimum horizontal extent used in drawing commands so far.
wxCoord | MinY () const
| Gets the minimum vertical extent used in drawing commands so far.
void | ResetBoundingBox ()
| Resets the bounding box: after a call to this function, the bounding box doesn't contain anything.
bool | StartDoc (const wxString &message)
| Starts a document (only relevant when outputting to a printer).
void | StartPage ()
| Starts a document page (only relevant when outputting to a printer).
void | EndDoc ()
| Ends a document (only relevant when outputting to a printer).
void | EndPage ()
| Ends a document page (only relevant when outputting to a printer).
bool | 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)
| Copy from a source DC to this DC.
bool | 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)
| Copy from a source DC to this DC possibly changing the scale.
const wxBrush & | GetBackground () const
| Gets the brush used for painting the background.
const wxBrush & | GetBrush () const
| Gets the current brush.
const wxPen & | GetPen () const
| Gets the current pen.
void | SetBackground (const wxBrush &brush)
| Sets the current background brush for the DC.
void | SetBrush (const wxBrush &brush)
| Sets the current brush for the DC.
void | SetPen (const wxPen &pen)
| Sets the current pen for the DC.
bool | CanUseTransformMatrix () const
| Check if the use of transformation matrix is supported by the current system.
bool | SetTransformMatrix (const wxAffineMatrix2D &matrix)
| Set the transformation matrix.
wxAffineMatrix2D | GetTransformMatrix () const
| Return the transformation matrix used by this device context.
void | ResetTransformMatrix ()
| Revert the transformation matrix to identity matrix.
bool | CanDrawBitmap () const
| Does the DC support drawing bitmaps?
bool | CanGetTextExtent () const
| Does the DC support calculating the size required to draw text?
Public Member Functions inherited from wxObject
| wxObject ()
| Default ctor; initializes to NULL the internal reference data.
| wxObject (const wxObject &other)
| Copy ctor.
virtual | ~wxObject ()
| Destructor.
virtual wxClassInfo * | GetClassInfo () const
| This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar).
wxObjectRefData * | GetRefData () const
| Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
bool | IsKindOf (const wxClassInfo *info) const
| Determines whether this class is a subclass of (or the same class as) the given class.
bool | IsSameAs (const wxObject &obj) const
| Returns true if this object has the same data pointer as obj.
void | Ref (const wxObject &clone)
| Makes this object refer to the data in clone.
void | SetRefData (wxObjectRefData *data)
| Sets the wxObject::m_refData pointer.
void | UnRef ()
| Decrements the reference count in the associated data, and if it is zero, deletes the data.
void | UnShare ()
| This is the same of AllocExclusive() but this method is public.
void | operator delete (void *buf)
| The delete operator is defined for debugging versions of the library only, when the identifier `WXDEBUG` is defined.
void * | operator new (size_t size, const wxString &filename=NULL, int lineNum=0)
| The new operator is defined for debugging versions of the library only, when the identifier `WXDEBUG` is defined.

## Additional Inherited Members
Protected Member Functions inherited from wxObject
void | AllocExclusive ()
| Ensure that this object's data is not shared with any other object.
virtual wxObjectRefData * | CreateRefData () const
| Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it.
virtual wxObjectRefData * | CloneRefData (const wxObjectRefData *data) const
| Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data.
Protected Attributes inherited from wxObject
wxObjectRefData * | m_refData
| Pointer to an object which is the object's reference-counted data.

## Constructor & Destructor Documentation

wxMetafileDC::wxMetafileDC | ( | const wxString & | filename = `wxEmptyString` | ) |

Constructor.

If no filename is passed, the metafile is created in memory.

wxMetafileDC::~wxMetafileDC | ( |  | ) |

Destructor.

## Member Function Documentation

wxMetafile* wxMetafileDC::Close | ( |  | ) |

This must be called after the device context is finished with.

A metafile is returned, and ownership of it passes to the calling application (so it should be destroyed explicitly).