Version: 3.0.2
wxMetafile Class Reference

#include <wx/metafile.h>

+ Inheritance diagram for wxMetafile:

Detailed Description

A wxMetafile represents the MS Windows metafile object, so metafile operations have no effect in X.

In wxWidgets, only sufficient functionality has been provided for copying a graphic to the clipboard; this may be extended in a future version.

Presently, the only way of creating a metafile is to use a wxMetafileDC.

Availability:  only available for the wxMSW port.

Library:  wxCore
Category:  Graphics Device Interface (GDI)
See Also
wxMetafileDC

Public Member Functions

 wxMetafile (const wxString &filename=wxEmptyString)
 Constructor.
 
 ~wxMetafile ()
 Destructor.
 
bool IsOk ()
 Returns true if the metafile is valid.
 
bool Play (wxDC *dc)
 Plays the metafile into the given device context, returning true if successful.
 
bool SetClipboard (int width=0, int height=0)
 Passes the metafile data to the clipboard.
 
- 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 wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar).
 
wxObjectRefDataGetRefData () 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 wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it.
 
virtual wxObjectRefDataCloneRefData (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
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data.
 

Constructor & Destructor Documentation

wxMetafile::wxMetafile ( const wxString filename = wxEmptyString)

Constructor.

If a filename is given, the Windows disk metafile is read in. Check whether this was performed successfully by using the IsOk() member.

wxMetafile::~wxMetafile ( )

Destructor.

See Object Destruction for more info.

Member Function Documentation

bool wxMetafile::IsOk ( )

Returns true if the metafile is valid.

bool wxMetafile::Play ( wxDC dc)

Plays the metafile into the given device context, returning true if successful.

bool wxMetafile::SetClipboard ( int  width = 0,
int  height = 0 
)

Passes the metafile data to the clipboard.

The metafile can no longer be used for anything, but the wxMetafile object must still be destroyed by the application.

Below is a example of metafile, metafile device context and clipboard use from the hello.cpp example. Note the way the metafile dimensions are passed to the clipboard, making use of the device context's ability to keep track of the maximum extent of drawing commands.

if (dc.IsOk())
{
Draw(dc, false);
wxMetafile *mf = dc.Close();
if (mf)
{
bool success = mf->SetClipboard((int)(dc.MaxX() + 10), (int)(dc.MaxY() + 10));
delete mf;
}
}