Frage zu: Metafile in die Zwischenablage kopieren
-
System::Drawing::Graphics ^newGraphics = this->CreateGraphics(); IntPtr ipHDC = newGraphics->GetHdc(); System::Drawing::Imaging::Metafile ^ mf = nullptr ; mf = gcnew System::Drawing::Imaging::Metafile( ipHDC , Rectangle( 0 , 0 , w , h ) , System::Drawing::Imaging::MetafileFrameUnit::Pixel , System::Drawing::Imaging::EmfType::EmfOnly ); System::Drawing::Graphics^ metaGraphics = System::Drawing::Graphics::FromImage(mf); DrawNomogramm( metaGraphics , panel1->Width , panel1->Height ) ; newGraphics->ReleaseHdc(ipHDC); delete newGraphics ; delete metaGraphics; Clipboard::setData( DataFormats::EnhancedMetafile , mf ); // PutEMFOnClipboard( this->Handle , mf ) ; delete mf ;
Den lieben Nachmittag lang habe ich erfolglos versucht, auf dem oben gennanten Wege ein Metafile in die Zwischenablage zu kopieren, bis ich dann auf diesen Artikel gestoßen bin: http://support.microsoft.com/kb/323530/en-us/
Die dort beschriebene Lösung verbirgt sich hinter dem oben auskommentierten "PutEMFOnClipboard( this->Handle , mf ) ;" und funktioniert auch soweit. Das Akute Problem ist damit also erst einmal gelöst.
Nun meine Frage: Ist das deren Ernst? Gibt es wirklich keine andere Lösung als diesen Workaround?
-
Da ich keine Antwort erhalten habe, muss ich wohl daraus schließen, dass es nur über die Notlösung aus KB323530 geht.
Finde ich ehrlich gesagt etwas komisch, da ich von solch einem Framework eigentlich etwas anderes erwartet hätte.