Udostępnij za pośrednictwem


Rozszerzone operacje metapliku

Aby wykonać następujące zadania, można użyć uchwytu do rozszerzonego metapliku:

  • Wyświetl obraz przechowywany w rozszerzonym metapliku.
  • Utwórz kopie rozszerzonego metapliku.
  • Edytuj rozszerzony metaplik.
  • Pobierz opcjonalny opis przechowywany w rozszerzonym metapliku.
  • Pobierz kopię nagłówka enhanced-metafile.
  • Pobierz wersję binarną rozszerzonego metapliku.
  • Wyliczanie kolorów w opcjonalnej palecie.

Te zadania zostały omówione w sekcjach w pozostałej części tego tematu.

Wyświetlanie obrazu przechowywanego w rozszerzonym metapliku

Obraz przechowywany w rozszerzonym metapliku można wyświetlić przy użyciu funkcji PlayEnhMetaFile. Przekaż dojście funkcji do rozszerzonego metapliku bez konieczności zajmowania się formatem rozszerzonych rekordów metapliku. Jednak czasami pożądane jest wyliczanie rekordów w rozszerzonym metapliku w celu wyszukiwania określonej funkcji GDI i modyfikowania parametrów funkcji w jakiś sposób. W tym celu można użyć EnumEnhMetaFile i udostępnić funkcję wywołania zwrotnego, EnhMetaFileProc, w celu przetworzenia rozszerzonych rekordów metaplików. Aby zmodyfikować parametry rozszerzonego rekordu metapliku, musisz znać format parametrów w rekordzie.

Tworzenie kopii rozszerzonego metapliku

Niektóre aplikacje tworzą tymczasowe kopie zapasowe (lub duplikaty) pliku przed zezwoleniem użytkownikowi na zmianę oryginału. Aplikacja może utworzyć kopię zapasową rozszerzonego metapliku, wywołując funkcję CopyEnhMetaFile, podając uchwyt identyfikujący ulepszony metaplik i podając wskaźnik do nazwy nowego pliku.

Aby utworzyć metaplik rozszerzonego formatu opartego na pamięci, wywołaj funkcję SetEnhMetaFileBits.

Edytowanie rozszerzonego metapliku

Większość aplikacji do projektowania rysunku, ilustracji i projektowania wspomaganego komputerowo (CAD) wymaga sposobu edytowania obrazu przechowywanego w rozszerzonym metapliku. Mimo że edytowanie rozszerzonego metapliku jest złożonym zadaniem, można użyć funkcji EnumEnhMetaFile w połączeniu z innymi funkcjami, aby zapewnić tę funkcję w aplikacji. Funkcja EnumEnhMetaFile i skojarzona z nią funkcja wywołania zwrotnego, EnhMetaFileProc, umożliwiają aplikacji przetwarzanie poszczególnych rekordów w rozszerzonym metapliku.

Pobieranie opcjonalnego opisu przechowywanego w rozszerzonym metapliku

Niektóre aplikacje wyświetlają opis tekstu rozszerzonego metapliku z odpowiednią nazwą pliku w oknie dialogowym Otwórz. Można określić, czy ten ciąg istnieje w rozszerzonym metapliku, pobierając nagłówek metapliku za pomocą funkcji GetEnhMetaFileHeader i sprawdzając jeden z jego elementów członkowskich. Jeśli ciąg istnieje, aplikacja pobiera ją, wywołując funkcję GetEnhMetaFileDescription.

Pobieranie wersji binarnej rozszerzonego metapliku

Zawartość metapliku można pobrać, wywołując funkcję GetEnhMetaFileBits; jednak przed pobraniem zawartości należy określić rozmiar pliku. Aby uzyskać rozmiar, możesz użyć funkcji GetEnhMetaFileHeader i zbadać odpowiedni element członkowski.

Wyliczanie kolorów w palecie opcjonalnej

Aby uzyskać spójne kolory, gdy obraz jest wyświetlany na różnych urządzeniach wyjściowych, można wywołać funkcję CreatePalette i zapisać paletę logiczną w rozszerzonym metapliku. Aplikacja, która wyświetla obraz przechowywany w rozszerzonym metapliku, pobiera tę paletę i wywołuje funkcję RealizePalette przed wyświetleniem obrazu. Aby określić, czy paleta jest przechowywana w rozszerzonym metapliku, pobierz nagłówek metapliku i zbadaj odpowiedni element członkowski. Jeśli paleta istnieje, możesz wywołać funkcję GetEnhMetaFilePaletteEntries, aby pobrać paletę logiczną.