Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Abschnitt enthält ein Beispiel, das zeigt, wie eine Anwendung eine erweiterte Metadatei öffnet, die auf dem Datenträger gespeichert ist, und das zugehörige Bild im Clientbereich anzeigt.
Im Beispiel wird das Dialogfeld Allgemein öffnen verwendet, um es dem Benutzer zu ermöglichen, eine erweiterte Metadatei aus einer Liste vorhandener Dateien auszuwählen. Anschließend wird der Name der ausgewählten Datei an die GetEnhMetaFile-Funktion übergeben, die ein Handle zurückgibt, das die Datei identifiziert. Dieses Handle wird an die PlayEnhMetaFile-Funktion übergeben, um das Bild anzuzeigen.
LoadString(hInst, IDS_FILTERSTRING,
(LPSTR)szFilter, sizeof(szFilter));
// Replace occurrences of '%' string separator
// with '\0'.
for (i=0; szFilter[i]!='\0'; i++)
{
if (szFilter[i] == '%')
szFilter[i] = '\0';
}
LoadString(hInst, IDS_DEFEXTSTRING,
(LPSTR)szDefExt, sizeof(szFilter));
// Use the OpenFilename common dialog box
// to obtain the desired filename.
szFile[0] = '\0';
OPENFILENAME Ofn;
Ofn.lStructSize = sizeof(OPENFILENAME);
Ofn.hwndOwner = hWnd;
Ofn.lpstrFilter = szFilter;
Ofn.lpstrCustomFilter = (LPSTR)NULL;
Ofn.nMaxCustFilter = 0L;
Ofn.nFilterIndex = 1L;
Ofn.lpstrFile = szFile;
Ofn.nMaxFile = sizeof(szFile);
Ofn.lpstrFileTitle = szFileTitle;
Ofn.nMaxFileTitle = sizeof(szFileTitle);
Ofn.lpstrInitialDir = (LPSTR) NULL;
Ofn.lpstrTitle = (LPSTR)NULL;
Ofn.Flags = OFN_SHOWHELP | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
Ofn.nFileOffset = 0;
Ofn.nFileExtension = 0;
Ofn.lpstrDefExt = szDefExt;
GetOpenFileName(&Ofn);
// Open the metafile.
HENHMETAFILE hemf = GetEnhMetaFile(Ofn.lpstrFile);
// Retrieve a handle to a window device context.
HDC hDC = GetDC(hWnd);
// Retrieve the client rectangle dimensions.
GetClientRect(hWnd, &rct);
// Draw the picture.
PlayEnhMetaFile(hDC, hemf, &rct);
// Release the metafile handle.
DeleteEnhMetaFile(hemf);
// Release the window DC.
ReleaseDC(hWnd, hDC);