diff --git a/include/wx/msw/enhmeta.h b/include/wx/msw/enhmeta.h index b5469627d6..7778969adc 100644 --- a/include/wx/msw/enhmeta.h +++ b/include/wx/msw/enhmeta.h @@ -61,7 +61,7 @@ public: void SetHENHMETAFILE(WXHANDLE hMF) { Free(); m_hMF = hMF; } protected: - void Init() { m_hMF = 0; } + void Init(); void Free(); void Assign(const wxEnhMetaFile& mf); diff --git a/src/msw/enhmeta.cpp b/src/msw/enhmeta.cpp index 1767d356f2..cbb8acc6bf 100644 --- a/src/msw/enhmeta.cpp +++ b/src/msw/enhmeta.cpp @@ -70,6 +70,21 @@ static inline const wxChar *GetMetaFileName(const wxString& fn) // wxEnhMetaFile // ---------------------------------------------------------------------------- +void wxEnhMetaFile::Init() +{ + if ( m_filename.empty() ) + { + m_hMF = 0; + } + else // have valid file name, load metafile from it + { + m_hMF = GetEnhMetaFile(m_filename); + if ( !m_hMF ) + wxLogSysError(_("Failed to load metafile from file \"%s\"."), + m_filename.c_str()); + } +} + void wxEnhMetaFile::Assign(const wxEnhMetaFile& mf) { if ( &mf == this )