1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
\section{\class{wxMetafile}}\label{wxmetafile}
A {\bf 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.
\wxheading{Derived from}
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/metafile.h>
\wxheading{See also}
\helpref{wxMetafileDC}{wxmetafiledc}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxMetafile::wxMetafile}\label{wxmetafilector}
\func{}{wxMetafile}{\param{const wxString\& }{filename = ""}}
Constructor. If a filename is given, the Windows disk metafile is
read in. Check whether this was performed successfully by
using the \helpref{wxMetafile:IsOk}{wxmetafileisok} member.
\membersection{wxMetafile::\destruct{wxMetafile}}\label{wxmetafiledtor}
\func{}{\destruct{wxMetafile}}{\void}
Destructor.
See \helpref{reference-counted object destruction}{refcountdestruct} for more info.
\membersection{wxMetafile::IsOk}\label{wxmetafileisok}
\func{bool}{Ok}{\void}
Returns true if the metafile is valid.
\membersection{wxMetafile::Play}\label{wxmetafileplay}
\func{bool}{Play}{\param{wxDC *}{dc}}
Plays the metafile into the given device context, returning
true if successful.
\membersection{wxMetafile::SetClipboard}\label{wxmetafilesetclipboard}
\func{bool}{SetClipboard}{\param{int}{ width = 0}, \param{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 {\tt 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.
\begin{verbatim}
wxMetafileDC dc;
if (dc.Ok())
{
Draw(dc, false);
wxMetafile *mf = dc.Close();
if (mf)
{
bool success = mf->SetClipboard((int)(dc.MaxX() + 10), (int)(dc.MaxY() + 10));
delete mf;
}
}
\end{verbatim}
\section{\class{wxMetafileDC}}\label{wxmetafiledc}
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
\rtfsp{\bf wxDC}. The \helpref{wxMetafileDC::Close}{wxmetafiledcclose} 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 \helpref{wxMetafile}{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 \helpref{::wxMakeMetafilePlaceable}{wxmakemetafileplaceable} after
closing your disk-based metafile device context.
\wxheading{Derived from}
\helpref{wxDC}{wxdc}\\
\helpref{wxObject}{wxobject}
\wxheading{Include files}
<wx/metafile.h>
\wxheading{See also}
\helpref{wxMetafile}{wxmetafile}, \helpref{wxDC}{wxdc}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxMetafileDC::wxMetafileDC}\label{wxmetafiledcctor}
\func{}{wxMetafileDC}{\param{const wxString\& }{filename = ""}}
Constructor. If no filename is passed, the metafile is created
in memory.
\membersection{wxMetafileDC::\destruct{wxMetafileDC}}\label{wxmetafiledcdtor}
\func{}{\destruct{wxMetafileDC}}{\void}
Destructor.
\membersection{wxMetafileDC::Close}\label{wxmetafiledcclose}
\func{wxMetafile *}{Close}{\void}
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).
|