🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: microsoft.public.fr.vc
Article #5

Afficher un metafile dans un bitmap en utilisant Bitblt()

#5
From: Severine Ramadour
Date: Fri, 26 Jun 1998 00:00
50 lines
2659 bytes
Je voudrais afficher un metafile dans une r�gion de clipping en utilisant
les MFC. Mais il y a un probl�me lorsque l'on utilise la fonction
PlayEnhMetaFile en m�me temps qu'une r�gion de clipping (la fonction cr�e sa
propre r�gion de clipping et est ensuite incapable de la lib�rer ce qui
finit par remplir la m�moire).
Pour contourner ce probl�me, il indiqu� dans l'aide de Microsoft qu'il faut
jouer le metafile (sans region de clipping) dans une bitmap et ensuite
afficher la bitmap � l'�cran en utilisant Bitblt().

J'ai essay� de suivre ces conseils, mais malgr� mes deux tentatives, rien ne
s'affiche � l'�cran et il faut pourtant absolument que j'utilise une r�gion
de clipping !!

Voil� les deux morceaux de codes que j'ai utilis� pour essayer d'afficher :
    void CMetabmpView::OnDraw(CDC* pDC)
    {
        CRect rect;
        pDC -> GetClipBox(&rect);
        HENHMETAFILE emf;
        CDC memDC;
        memDC.CreateCompatibleDC(pDC);
        emf = GetEnhMetaFile("c:\\temp\\picture.emf");
        memDC.PlayMetaFile(emf,&rect);
        pDC -> BitBlt(rect.left, rect.top, rect.right - rect.left,
rect.bottom - rect.top, &memDC, rect.left, rect.top,
        SRCCOPY);
    }

   void CMetabmpView::OnDraw(CDC* pDC)
    {
      CRect rect;
      pDC -> GetClipBox(&rect);
      HENHMETAFILE emf;
      CMetaFileDC metaDC;
      metaDC.CreateEnhanced(pDC,NULL,&rect,NULL);
      emf = GetEnhMetaFile("c:\\temp\\image.emf");
      metaDC.PlayMetaFile(emf,&rect);
      pDC -> BitBlt(rect.left, rect.top, rect.right - rect.left,
rect.bottom - rect.top, &metaDC, rect.left, rect.top,
                            SRCCOPY);
      metaDC.CloseEnhanced();
     }

Je ne vois pas trop ce que je pourrais faire d'autre, peut-�tre ais-je
oubli� une instruction... Je ne sais pas, mais si quelqu'un a une id�e qui
pourrait me mettre sur la voie, cela m'aiderait beaucoup.
Merci d'avance � ceux qui r�pondront !!!

S�verine Ramadour
Technical Details
Message-ID: <6n096b$o7i$1@platane.wanadoo.fr>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: fdcad,2cd84b6df9e0b7fb,start
X-Google-Attributes: gidfdcad,public
X-Google-Thread: f5082,2cd84b6df9e0b7fb,start
X-Google-Attributes: gidf5082,public
From: "Severine Ramadour" <severine.ramadour@insa-lyon.fr>
Subject: Afficher un metafile dans un bitmap en utilisant Bitblt()
Date: 1998/06/26
Message-ID: <6n096b$o7i$1@platane.wanadoo.fr>
X-Deja-AN: 366302915
Followup-To: microsoft.public.fr.vc
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
Organization: Wanadoo - (Client of French Internet Provider)
Newsgroups: microsoft.public.fr.vc,fr.comp.lang.c++