MFC MDI MetaFiles, EnhancedMetaFiles

Visual C++ 5.0, MDI application:

I tried to paint my window to a CMetaFileDC class, a regular one doesn't work, so I created an Enhanced MetaFile. The problem is that the texts are not saved. On the contrary the graphics are OK, but the text cannot be seen in the result file when I open it. The texts are written with the DrawText(...) function.

- How to fix the text problem: my code is:
mfdc.CreateEnhanced(NULL, "c:\\gir.emf", NULL, "GioGraph\0Graph\0\0" );//creating
pDoc->Data.DrawGraph(&mfdc, MaxSize, DG_METAFILE);//drawing
HENHMETAFILE hemf = mfdc.CloseEnhanced();//getting handle

- How to work with a regualar-not-enhanced MetaFile - my code is:
pDoc->Data.DrawGraph(&mfdc, MaxSize, DG_METAFILE);//drawing
HMETAFILE hemf = mfdc.Close();//getting handle
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

piano_boxerConnect With a Mentor Commented:
Try this code (It works for me in a very complex view drawing):

CDC* pDC = GetDC();
CMetaFileDC dc;
if(dc.CreateEnhanced(pDC, "filename.emf", NULL, "Test\0File\0\0"))
    dc.m_bPrinting = TRUE;
    dc.m_hAttribDC = pDC->m_hDC;
    OnDraw(&dc);  // Call normal drawing routine for the view


NOTE: You can change/remove the SetMapMode(MM_HIMETRIC) calls if you use a different mapping mode.
Can you post the code for pDoc->Data.DrawGraph() ?
All Courses

From novice to tech pro — start learning today.